Support for chat rename
This commit is contained in:
parent
f8d3fdf276
commit
c27ce7f6cb
3 changed files with 47 additions and 0 deletions
14
interface.c
14
interface.c
|
@ -67,6 +67,7 @@ char *commands[] = {
|
|||
"chat_info",
|
||||
"user_info",
|
||||
"fwd",
|
||||
"rename_chat",
|
||||
"show_license",
|
||||
0 };
|
||||
|
||||
|
@ -83,6 +84,7 @@ int commands_flags[] = {
|
|||
074,
|
||||
071,
|
||||
072,
|
||||
074,
|
||||
07,
|
||||
};
|
||||
|
||||
|
@ -277,6 +279,18 @@ void interpreter (char *line UU) {
|
|||
if (*q && index < user_num + chat_num) {
|
||||
do_send_message (Peers[index], q, strlen (q));
|
||||
}
|
||||
} else if (!memcmp (line, "rename_chat", 11)) {
|
||||
char *q = line + 11;
|
||||
int len;
|
||||
char *text = get_token (&q, &len);
|
||||
int index = 0;
|
||||
while (index < user_num + chat_num && (!Peers[index]->print_name || strncmp (Peers[index]->print_name, text, len) || Peers[index]->id >= 0)) {
|
||||
index ++;
|
||||
}
|
||||
while (*q && (*q == ' ' || *q == '\t')) { q ++; }
|
||||
if (*q && index < user_num + chat_num) {
|
||||
do_rename_chat (Peers[index], q);
|
||||
}
|
||||
} else if (!memcmp (line, "send_photo", 10)) {
|
||||
char *q = line + 10;
|
||||
int len;
|
||||
|
|
32
queries.c
32
queries.c
|
@ -923,6 +923,38 @@ void do_forward_message (union user_chat *U, int n) {
|
|||
send_query (DC_working, packet_ptr - packet_buffer, packet_buffer, &fwd_msg_methods, 0);
|
||||
}
|
||||
|
||||
int rename_chat_on_answer (struct query *q UU) {
|
||||
assert (fetch_int () == (int)CODE_messages_stated_message);
|
||||
struct message *M = fetch_alloc_message ();
|
||||
assert (fetch_int () == CODE_vector);
|
||||
int n, i;
|
||||
n = fetch_int ();
|
||||
for (i = 0; i < n; i++) {
|
||||
fetch_alloc_chat ();
|
||||
}
|
||||
assert (fetch_int () == CODE_vector);
|
||||
n = fetch_int ();
|
||||
for (i = 0; i < n; i++) {
|
||||
fetch_alloc_user ();
|
||||
}
|
||||
fetch_int (); // pts
|
||||
fetch_int (); // seq
|
||||
print_message (M);
|
||||
return 0;
|
||||
}
|
||||
|
||||
struct query_methods rename_chat_methods = {
|
||||
.on_answer = rename_chat_on_answer
|
||||
};
|
||||
|
||||
void do_rename_chat (union user_chat *U, char *name) {
|
||||
clear_packet ();
|
||||
out_int (CODE_messages_edit_chat_title);
|
||||
out_int (-U->id);
|
||||
out_string (name);
|
||||
send_query (DC_working, packet_ptr - packet_buffer, packet_buffer, &rename_chat_methods, 0);
|
||||
}
|
||||
|
||||
int chat_info_on_answer (struct query *q UU) {
|
||||
struct chat *C = fetch_alloc_chat_full ();
|
||||
union user_chat *U = (void *)C;
|
||||
|
|
|
@ -77,5 +77,6 @@ void do_get_chat_info (union user_chat *chat);
|
|||
void do_get_user_list_info_silent (int num, int *list);
|
||||
void do_get_user_info (union user_chat *user);
|
||||
void do_forward_message (union user_chat *U, int n);
|
||||
void do_rename_chat (union user_chat *U, char *name);
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Add table
Reference in a new issue