1
0
mirror of https://github.com/Tha14/toxic.git synced 2024-09-29 05:25:36 +02:00

add command to decline friend requests

This commit is contained in:
Jfreegman 2014-08-25 14:08:01 -04:00
parent 092df2c0e4
commit 68f1dffba7
No known key found for this signature in database
GPG Key ID: 3627F3144076AE63
7 changed files with 43 additions and 7 deletions

View File

@ -43,6 +43,7 @@ static struct cmd_func global_commands[] = {
{ "/add", cmd_add }, { "/add", cmd_add },
{ "/clear", cmd_clear }, { "/clear", cmd_clear },
{ "/connect", cmd_connect }, { "/connect", cmd_connect },
{ "/decline", cmd_decline },
{ "/exit", cmd_quit }, { "/exit", cmd_quit },
{ "/groupchat", cmd_groupchat }, { "/groupchat", cmd_groupchat },
{ "/help", cmd_prompt_help }, { "/help", cmd_prompt_help },

View File

@ -29,10 +29,10 @@
#define MAX_NUM_ARGS 4 /* Includes command */ #define MAX_NUM_ARGS 4 /* Includes command */
#ifdef _AUDIO #ifdef _AUDIO
#define GLOBAL_NUM_COMMANDS 17 #define GLOBAL_NUM_COMMANDS 18
#define CHAT_NUM_COMMANDS 12 #define CHAT_NUM_COMMANDS 12
#else #else
#define GLOBAL_NUM_COMMANDS 15 #define GLOBAL_NUM_COMMANDS 16
#define CHAT_NUM_COMMANDS 5 #define CHAT_NUM_COMMANDS 5
#endif /* _AUDIO */ #endif /* _AUDIO */

View File

@ -213,6 +213,38 @@ void cmd_connect(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)
free(binary_string); free(binary_string);
} }
void cmd_decline(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)[MAX_STR_SIZE])
{
if (argc < 1) {
line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Request ID required.");
return;
}
int req = atoi(argv[1]);
if ((req == 0 && strcmp(argv[1], "0")) || req < 0 || req > MAX_FRIEND_REQUESTS) {
line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "No pending friend request with that ID.");
return;
}
if (!FriendRequests.request[req].active) {
line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "No pending friend request with that ID.");
return;
}
memset(&FriendRequests.request[req], 0, sizeof(struct _friend_request));
int i;
for (i = FriendRequests.max_idx; i > 0; --i) {
if (FriendRequests.request[i - 1].active)
break;
}
FriendRequests.max_idx = i;
--FriendRequests.num_requests;
}
void cmd_groupchat(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)[MAX_STR_SIZE]) void cmd_groupchat(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)[MAX_STR_SIZE])
{ {
if (get_num_active_windows() >= MAX_WINDOWS_NUM) { if (get_num_active_windows() >= MAX_WINDOWS_NUM) {

View File

@ -30,6 +30,7 @@ void cmd_accept(WINDOW *, ToxWindow *, Tox *, int argc, char (*argv)[MAX_STR_SIZ
void cmd_add(WINDOW *, ToxWindow *, Tox *, int argc, char (*argv)[MAX_STR_SIZE]); void cmd_add(WINDOW *, ToxWindow *, Tox *, int argc, char (*argv)[MAX_STR_SIZE]);
void cmd_clear(WINDOW *, ToxWindow *, Tox *, int argc, char (*argv)[MAX_STR_SIZE]); void cmd_clear(WINDOW *, ToxWindow *, Tox *, int argc, char (*argv)[MAX_STR_SIZE]);
void cmd_connect(WINDOW *, ToxWindow *, Tox *, int argc, char (*argv)[MAX_STR_SIZE]); void cmd_connect(WINDOW *, ToxWindow *, Tox *, int argc, char (*argv)[MAX_STR_SIZE]);
void cmd_decline(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)[MAX_STR_SIZE]);
void cmd_groupchat(WINDOW *, ToxWindow *, Tox *, int argc, char (*argv)[MAX_STR_SIZE]); void cmd_groupchat(WINDOW *, ToxWindow *, Tox *, int argc, char (*argv)[MAX_STR_SIZE]);
void cmd_log(WINDOW *, ToxWindow *, Tox *, int argc, char (*argv)[MAX_STR_SIZE]); void cmd_log(WINDOW *, ToxWindow *, Tox *, int argc, char (*argv)[MAX_STR_SIZE]);
void cmd_myid(WINDOW *, ToxWindow *, Tox *, int argc, char (*argv)[MAX_STR_SIZE]); void cmd_myid(WINDOW *, ToxWindow *, Tox *, int argc, char (*argv)[MAX_STR_SIZE]);

View File

@ -138,6 +138,7 @@ static void help_draw_global(ToxWindow *self)
wprintw(win, " /add <addr> <msg> : Add contact with optional message\n"); wprintw(win, " /add <addr> <msg> : Add contact with optional message\n");
wprintw(win, " /accept <id> : Accept friend request\n"); wprintw(win, " /accept <id> : Accept friend request\n");
wprintw(win, " /decline <id> : Decline friend request\n");
wprintw(win, " /requests : List pending friend requests\n"); wprintw(win, " /requests : List pending friend requests\n");
wprintw(win, " /connect <ip> <port> <key> : Manually connect to a DHT node\n"); wprintw(win, " /connect <ip> <port> <key> : Manually connect to a DHT node\n");
wprintw(win, " /status <type> <msg> : Set status with optional note\n"); wprintw(win, " /status <type> <msg> : Set status with optional note\n");
@ -265,9 +266,9 @@ void help_onKey(ToxWindow *self, wint_t key)
case 'g': case 'g':
#ifdef _AUDIO #ifdef _AUDIO
help_init_window(self, 22, 80); help_init_window(self, 23, 80);
#else #else
help_init_window(self, 18, 80); help_init_window(self, 19, 80);
#endif #endif
self->help->type = HELP_GLOBAL; self->help->type = HELP_GLOBAL;
break; break;

View File

@ -55,6 +55,7 @@ const char glob_cmd_list[AC_NUM_GLOB_COMMANDS][MAX_CMDNAME_SIZE] = {
{ "/clear" }, { "/clear" },
{ "/close" }, /* rm /close when groupchats gets its own list */ { "/close" }, /* rm /close when groupchats gets its own list */
{ "/connect" }, { "/connect" },
{ "/decline" },
{ "/exit" }, { "/exit" },
{ "/groupchat" }, { "/groupchat" },
{ "/help" }, { "/help" },
@ -377,7 +378,7 @@ static void prompt_onFriendRequest(ToxWindow *self, Tox *m, const char *key, con
return; return;
} }
line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Type \"/accept %d\" to accept it.", n); line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Type \"/accept %d\" or \"/decline %d\"", n, n);
sound_notify(self, generic_message, NT_WNDALERT_1 | NT_NOTIFWND, NULL); sound_notify(self, generic_message, NT_WNDALERT_1 | NT_NOTIFWND, NULL);
} }

View File

@ -27,9 +27,9 @@
#include "windows.h" #include "windows.h"
#ifdef _AUDIO #ifdef _AUDIO
#define AC_NUM_GLOB_COMMANDS 17 #define AC_NUM_GLOB_COMMANDS 18
#else #else
#define AC_NUM_GLOB_COMMANDS 15 #define AC_NUM_GLOB_COMMANDS 16
#endif /* _AUDIO */ #endif /* _AUDIO */
#define MAX_FRIEND_REQUESTS 32 #define MAX_FRIEND_REQUESTS 32