From 7a4cfc14d1210603fe01073d64cf9683a24ebba5 Mon Sep 17 00:00:00 2001 From: Stefan Kropp Date: Sat, 29 Jan 2022 06:55:00 +0100 Subject: XEP-0107: User Mood - Clean mood * Bugfix in mood_autocomplete (wrong parameter) * Implemented /mood clean ______________________________________ / Profanity! THE XMPP client with mood \ \ support! / -------------------------------------- \ \ .--. |o_o | |:_/ | // \ \ (| | ) /'\_ _/`\ \___)=(___/ --- src/command/cmd_ac.c | 3 ++- src/command/cmd_defs.c | 11 +++++++---- src/command/cmd_funcs.c | 5 ++++- src/xmpp/iq.c | 17 +++++++++-------- 4 files changed, 22 insertions(+), 14 deletions(-) diff --git a/src/command/cmd_ac.c b/src/command/cmd_ac.c index d817b2ef..57576967 100644 --- a/src/command/cmd_ac.c +++ b/src/command/cmd_ac.c @@ -1063,6 +1063,7 @@ cmd_ac_init(void) mood_ac = autocomplete_new(); autocomplete_add(mood_ac, "set"); + autocomplete_add(mood_ac, "clean"); mood_type_ac = autocomplete_new(); autocomplete_add(mood_type_ac, "afraid"); autocomplete_add(mood_type_ac, "amazed"); @@ -4243,7 +4244,7 @@ _mood_autocomplete(ProfWin* window, const char* const input, gboolean previous) { char* result = NULL; - result = autocomplete_param_with_ac(input, "/mood", status_ac, TRUE, previous); + result = autocomplete_param_with_ac(input, "/mood", mood_ac, TRUE, previous); if (result) { return result; } diff --git a/src/command/cmd_defs.c b/src/command/cmd_defs.c index ab491f0c..4a51b9dd 100644 --- a/src/command/cmd_defs.c +++ b/src/command/cmd_defs.c @@ -2680,20 +2680,23 @@ static struct cmd_t command_defs[] = { }, { "/mood", - parse_args, 2, 3, NULL, + parse_args, 1, 3, NULL, CMD_NOSUBFUNCS CMD_MAINFUNC(cmd_mood) CMD_TAGS( CMD_TAG_CHAT) CMD_SYN( - "/mood set [text]") + "/mood set [text]", + "/mood clean") CMD_DESC( "Set your mood (XEP-0107). Use tab to switch through predefined moods.") CMD_ARGS( { "set ", "Setting your mood." }, - { "", "Additional Text." }) + { "", "Additional Text." }, + { "clean", "Clean your user mood." }) CMD_EXAMPLES( - "/mood set happy \"So happy to use Profanity!\"") + "/mood set happy \"So happy to use Profanity!\"", + "/mood clean") }, // NEXT-COMMAND (search helper) }; diff --git a/src/command/cmd_funcs.c b/src/command/cmd_funcs.c index fe5d5e45..14a36ab9 100644 --- a/src/command/cmd_funcs.c +++ b/src/command/cmd_funcs.c @@ -9650,7 +9650,7 @@ gboolean cmd_mood(ProfWin* window, const char* const command, gchar** args) { if (g_strcmp0(args[0], "set") == 0) { - if(args[1]) { + if (args[1]) { cons_show("Your mood: %s", args[1]); if (args[2]) { publish_user_mood(args[1], args[2]); @@ -9658,6 +9658,9 @@ cmd_mood(ProfWin* window, const char* const command, gchar** args) publish_user_mood(args[1], args[1]); } } + } else if (g_strcmp0(args[0], "clean") == 0) { + cons_show("Cleaning your user mood."); + publish_user_mood(NULL, NULL); } return TRUE; } diff --git a/src/xmpp/iq.c b/src/xmpp/iq.c index 81eec81e..1cac9096 100644 --- a/src/xmpp/iq.c +++ b/src/xmpp/iq.c @@ -2828,17 +2828,18 @@ publish_user_mood(const char* const mood, const char* const text) xmpp_stanza_add_child(item, mood_t); xmpp_stanza_t* x = xmpp_stanza_new(ctx); - xmpp_stanza_set_name(x, mood); - xmpp_stanza_add_child(mood_t, x); - xmpp_stanza_t* text_t = xmpp_stanza_new(ctx); - xmpp_stanza_set_name(text_t, STANZA_NAME_TEXT); - xmpp_stanza_add_child(mood_t, text_t); - xmpp_stanza_t* t = xmpp_stanza_new(ctx); - xmpp_stanza_set_text(t, text); - xmpp_stanza_add_child(text_t, t); + if (mood) { + xmpp_stanza_set_name(x, mood); + xmpp_stanza_add_child(mood_t, x); + xmpp_stanza_set_name(text_t, STANZA_NAME_TEXT); + xmpp_stanza_add_child(mood_t, text_t); + + xmpp_stanza_set_text(t, text); + xmpp_stanza_add_child(text_t, t); + } iq_send_stanza(iq); xmpp_stanza_release(iq); -- cgit 1.4.1-2-gfad0 From b766807bc32a1282f7989a6a37fc23f2107d286f Mon Sep 17 00:00:00 2001 From: Michael Vetter Date: Sun, 30 Jan 2022 18:25:21 +0100 Subject: command: adapt mood description --- src/command/cmd_defs.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/command/cmd_defs.c b/src/command/cmd_defs.c index 4a51b9dd..4af09204 100644 --- a/src/command/cmd_defs.c +++ b/src/command/cmd_defs.c @@ -2689,13 +2689,13 @@ static struct cmd_t command_defs[] = { "/mood set [text]", "/mood clean") CMD_DESC( - "Set your mood (XEP-0107). Use tab to switch through predefined moods.") + "Set your mood (XEP-0107).") CMD_ARGS( - { "set ", "Setting your mood." }, - { "", "Additional Text." }, + { "set <", "Set user mood to with an optional [text]. Use /mood set to toggle through predfined moods." }, { "clean", "Clean your user mood." }) CMD_EXAMPLES( "/mood set happy \"So happy to use Profanity!\"", + "/mood set amazed", "/mood clean") }, // NEXT-COMMAND (search helper) -- cgit 1.4.1-2-gfad0