Added send_text query

This commit is contained in:
vysheng 2013-10-22 12:36:07 +04:00
parent e2cc2ed7cc
commit b1d8835540
3 changed files with 38 additions and 0 deletions

View File

@ -35,6 +35,7 @@ char *commands[] = {
"dialog_list",
"send_photo",
"send_video",
"send_text",
0 };
int commands_flags[] = {
@ -46,6 +47,7 @@ int commands_flags[] = {
07,
0732,
0732,
0732,
};
char *a = 0;
@ -255,6 +257,21 @@ void interpreter (char *line UU) {
Peers[index]->id, strndup (f, len));
}
}
} else if (!memcmp (line, "send_text", 9)) {
char *q = line + 10;
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))) {
index ++;
}
if (index < user_num + chat_num) {
int len = 0;
char *f = get_token (&q, &len);
if (len > 0) {
do_send_text (Peers[index], strndup (f, len));
}
}
} else if (!memcmp (line, "history", 7)) {
char *q = line + 7;
int len;

View File

@ -486,6 +486,26 @@ void do_send_message (union user_chat *U, const char *msg) {
print_message (M);
}
void do_send_text (union user_chat *U, char *file_name) {
int fd = open (file_name, O_RDONLY);
if (fd < 0) {
rprintf ("No such file '%s'\n", file_name);
free (file_name);
return;
}
static char buf[(1 << 20) + 1];
int x = read (fd, buf, (1 << 20) + 1);
if (x == (1 << 20) + 1) {
rprintf ("Too big file '%s'\n", file_name);
free (file_name);
close (fd);
} else {
do_send_message (U, buf);
free (file_name);
close (fd);
}
}
int get_history_on_answer (struct query *q UU) {
static struct message *ML[10000];
int i;

View File

@ -48,6 +48,7 @@ double get_double_time (void);
void do_update_contact_list (void);
union user_chat;
void do_send_message (union user_chat *U, const char *msg);
void do_send_text (union user_chat *U, char *file);
void do_get_history (union user_chat *U, int limit);
void do_get_dialog_list (void);
void do_send_photo (int type, int to_id, char *file_name);