diff options
author | Michael Vetter <jubalh@iodoru.org> | 2021-07-01 10:53:11 +0200 |
---|---|---|
committer | Michael Vetter <jubalh@iodoru.org> | 2021-07-01 17:02:39 +0200 |
commit | 1d845c9ffb2a3575fa7edded00a7309016997a91 (patch) | |
tree | 11b26b48d9a8d21c5270dd98c82be9383197660b /src | |
parent | 2f533c5da4c77af2d661101bae05e8c9a4d9784c (diff) | |
download | profani-tty-1d845c9ffb2a3575fa7edded00a7309016997a91.tar.gz |
Reorder /blocked commands
Instead of `/blocked add [<jid>] [report-abuse|report-spam [<message>]` have: * /blocked add [<jid>] [<message>] (like before) * /blocked report-abuse [<jid>] [<message>] * /blocked report-spam [<jid>] [<message>]
Diffstat (limited to 'src')
-rw-r--r-- | src/command/cmd_ac.c | 2 | ||||
-rw-r--r-- | src/command/cmd_defs.c | 15 | ||||
-rw-r--r-- | src/command/cmd_funcs.c | 46 |
3 files changed, 37 insertions, 26 deletions
diff --git a/src/command/cmd_ac.c b/src/command/cmd_ac.c index 6b46d079..77cd1adc 100644 --- a/src/command/cmd_ac.c +++ b/src/command/cmd_ac.c @@ -951,6 +951,8 @@ cmd_ac_init(void) blocked_ac = autocomplete_new(); autocomplete_add(blocked_ac, "add"); autocomplete_add(blocked_ac, "remove"); + autocomplete_add(blocked_ac, "report-abuse"); + autocomplete_add(blocked_ac, "report-spam"); clear_ac = autocomplete_new(); autocomplete_add(clear_ac, "persist_history"); diff --git a/src/command/cmd_defs.c b/src/command/cmd_defs.c index 83714717..63cb8780 100644 --- a/src/command/cmd_defs.c +++ b/src/command/cmd_defs.c @@ -420,7 +420,7 @@ static struct cmd_t command_defs[] = { }, { "/blocked", - parse_args_with_freetext, 0, 4, NULL, + parse_args_with_freetext, 0, 3, NULL, CMD_NOSUBFUNCS CMD_MAINFUNC(cmd_blocked) CMD_TAGS( @@ -428,17 +428,22 @@ static struct cmd_t command_defs[] = { CMD_TAG_CHAT) CMD_SYN( "/blocked", - "/blocked add [<jid>] [report-abuse|report-spam [<message>]", + "/blocked add [<jid>]", + "/blocked report-abuse [<jid>] [<message>]", + "/blocked report-spam [<jid>] [<message>]", "/blocked remove <jid>") CMD_DESC( "Manage blocked users (XEP-0191), calling with no arguments shows the current list of blocked users. " - "To blog a certain user in a MUC use the following as jid: room@conference.example.org/spammy-user") + "To blog a certain user in a MUC use the following as jid: room@conference.example.org/spammy-user" + "It is also possible to block and report (XEP-0377) a user with the report-abuse and report-spam commands.") CMD_ARGS( { "add [<jid>]", "Block the specified Jabber ID. If in a chat window and no jid is specified, the current recipient will be blocked." }, - { "remove <jid>", "Remove the specified Jabber ID from the blocked list." }) + { "remove <jid>", "Remove the specified Jabber ID from the blocked list." }, + { "report-abuse <jid> [<message>]", "Report the jid as abuse with an optional message to the service operator." }, + { "report-spam <jid> [<message>]", "Report the jid as spam with an optional message to the service operator." }) CMD_EXAMPLES( "/blocked add hel@helheim.edda", - "/blocked add hel@helheim.edda report-spam", + "/blocked report-spam hel@helheim.edda Very annoying guy", "/blocked add profanity@rooms.dismail.de/spammy-user") }, diff --git a/src/command/cmd_funcs.c b/src/command/cmd_funcs.c index eeb860e9..9b092939 100644 --- a/src/command/cmd_funcs.c +++ b/src/command/cmd_funcs.c @@ -3012,10 +3012,10 @@ cmd_blocked(ProfWin* window, const char* const command, gchar** args) return TRUE; } + blocked_report br = BLOCKED_NO_REPORT; + if (g_strcmp0(args[0], "add") == 0) { char* jid = args[1]; - char* msg = NULL; - blocked_report br = BLOCKED_NO_REPORT; // /blocked add jid or /blocked add (in window) if (g_strv_length(args) < 3) { @@ -3028,27 +3028,9 @@ cmd_blocked(ProfWin* window, const char* const command, gchar** args) cons_bad_cmd_usage(command); return TRUE; } - - } else { - if (args[2] && g_strcmp0(args[2], "report-abuse") == 0) { - br = BLOCKED_REPORT_ABUSE; - } else if (args[2] && g_strcmp0(args[2], "report-abuse") == 0) { - br = BLOCKED_REPORT_SPAM; - } else { - cons_bad_cmd_usage(command); - return TRUE; - } - - if (!connection_supports(XMPP_FEATURE_SPAM_REPORTING)) { - cons_show("Spam reporting (%s) not supported by server.", XMPP_FEATURE_SPAM_REPORTING); - return TRUE; - } - - msg = args[3]; } - // args[3] is optional message - gboolean res = blocked_add(jid, br, msg); + gboolean res = blocked_add(jid, br, NULL); if (!res) { cons_show("User %s already blocked.", jid); } @@ -3070,6 +3052,28 @@ cmd_blocked(ProfWin* window, const char* const command, gchar** args) return TRUE; } + if (strncmp(args[0], "report-", 7) == 0) { + if (args[1] && g_strcmp0(args[0], "report-abuse") == 0) { + br = BLOCKED_REPORT_ABUSE; + } else if (args[1] && g_strcmp0(args[0], "report-spam") == 0) { + br = BLOCKED_REPORT_SPAM; + } else { + cons_bad_cmd_usage(command); + return TRUE; + } + + if (!connection_supports(XMPP_FEATURE_SPAM_REPORTING)) { + cons_show("Spam reporting (%s) not supported by server.", XMPP_FEATURE_SPAM_REPORTING); + return TRUE; + } + + // args[3] is an optional message + gboolean res = blocked_add(args[1], br, args[3]); + if (!res) { + cons_show("User %s already blocked.", args[1]); + } + } + GList* blocked = blocked_list(); GList* curr = blocked; if (curr) { |