diff --git a/src/command/cmd_ac.c b/src/command/cmd_ac.c index 475d02ff..d817b2ef 100644 --- a/src/command/cmd_ac.c +++ b/src/command/cmd_ac.c @@ -1460,6 +1460,7 @@ cmd_ac_reset(ProfWin* window) autocomplete_reset(executable_ac); autocomplete_reset(intype_ac); autocomplete_reset(mood_ac); + autocomplete_reset(mood_type_ac); autocomplete_reset(script_ac); if (script_show_ac) { @@ -4247,17 +4248,10 @@ _mood_autocomplete(ProfWin* window, const char* const input, gboolean previous) return result; } - //jabber_conn_status_t conn_status = connection_get_status(); - //if (conn_status == JABBER_CONNECTED) { result = autocomplete_param_with_ac(input, "/mood set", mood_type_ac, FALSE, previous); if (result) { return result; } - // result = autocomplete_param_with_func(input, "/mood get", roster_barejid_autocomplete, previous, NULL); - // if (result) { - // return result; - // } - //} return result; } diff --git a/src/command/cmd_defs.c b/src/command/cmd_defs.c index fc4c8dca..4ceb8193 100644 --- a/src/command/cmd_defs.c +++ b/src/command/cmd_defs.c @@ -2688,9 +2688,12 @@ static struct cmd_t command_defs[] = { CMD_SYN( "/mood set [\"Text\"]") CMD_DESC( - "Set your mood") - CMD_NOARGS - CMD_NOEXAMPLES + "Set your mood. Use the tab key to switch through the available moods") + CMD_ARGS( + { "set ", "Your mood" }, + { "", "Additional Text" }) + CMD_EXAMPLES( + "/mood set happy \"I'm happy\"") }, // NEXT-COMMAND (search helper) }; diff --git a/src/command/cmd_funcs.c b/src/command/cmd_funcs.c index 5e6b3cc2..fe5d5e45 100644 --- a/src/command/cmd_funcs.c +++ b/src/command/cmd_funcs.c @@ -9649,13 +9649,14 @@ cmd_register(ProfWin* window, const char* const command, gchar** args) gboolean cmd_mood(ProfWin* window, const char* const command, gchar** args) { - if (g_strcmp0(args[0], "set") == 0) { - cons_show("Your mood: %s", args[1]); - if (args[2]) { - publish_user_mood(args[1], args[2]); - } else { - publish_user_mood(args[1], args[1]); + if(args[1]) { + cons_show("Your mood: %s", args[1]); + if (args[2]) { + publish_user_mood(args[1], args[2]); + } else { + publish_user_mood(args[1], args[1]); + } } } return TRUE; diff --git a/src/xmpp/iq.c b/src/xmpp/iq.c index 4d140013..81eec81e 100644 --- a/src/xmpp/iq.c +++ b/src/xmpp/iq.c @@ -2808,23 +2808,23 @@ publish_user_mood(const char* const mood, const char* const text) xmpp_stanza_t* iq = xmpp_iq_new(ctx, STANZA_TYPE_SET, id); xmpp_stanza_t* pubsub = xmpp_stanza_new(ctx); - xmpp_stanza_set_name(pubsub, "pubsub"); - xmpp_stanza_set_ns(pubsub, "http://jabber.org/protocol/pubsub"); + xmpp_stanza_set_name(pubsub, STANZA_NAME_PUBSUB); + xmpp_stanza_set_ns(pubsub, STANZA_NS_PUBSUB); xmpp_stanza_add_child(iq, pubsub); xmpp_stanza_t* publish = xmpp_stanza_new(ctx); - xmpp_stanza_set_name(publish, "publish"); - xmpp_stanza_set_attribute(publish, "node", "http://jabber.org/protocol/mood"); + xmpp_stanza_set_name(publish, STANZA_NAME_PUBLISH); + xmpp_stanza_set_attribute(publish, STANZA_ATTR_NODE, STANZA_NS_MOOD); xmpp_stanza_add_child(pubsub, publish); xmpp_stanza_t* item = xmpp_stanza_new(ctx); - xmpp_stanza_set_name(item, "item"); + xmpp_stanza_set_name(item, STANZA_NAME_ITEM); xmpp_stanza_set_attribute(item, "id", "current"); xmpp_stanza_add_child(publish, item); xmpp_stanza_t* mood_t = xmpp_stanza_new(ctx); - xmpp_stanza_set_name(mood_t, "mood"); - xmpp_stanza_set_ns(mood_t, "http://jabber.org/protocol/mood"); + xmpp_stanza_set_name(mood_t, STANZA_NAME_MOOD); + xmpp_stanza_set_ns(mood_t, STANZA_NS_MOOD); xmpp_stanza_add_child(item, mood_t); xmpp_stanza_t* x = xmpp_stanza_new(ctx); @@ -2832,7 +2832,7 @@ publish_user_mood(const char* const mood, const char* const text) xmpp_stanza_add_child(mood_t, x); xmpp_stanza_t* text_t = xmpp_stanza_new(ctx); - xmpp_stanza_set_name(text_t, "text"); + 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); diff --git a/src/xmpp/session.c b/src/xmpp/session.c index a58ab1f7..4a19e211 100644 --- a/src/xmpp/session.c +++ b/src/xmpp/session.c @@ -286,24 +286,22 @@ session_get_account_name(void) return saved_account.name; } -static int _receive_mood(xmpp_stanza_t* const stanza, void* const userdata); - static int _receive_mood(xmpp_stanza_t* const stanza, void* const userdata) { const char* from = xmpp_stanza_get_from(stanza); - xmpp_stanza_t* event = xmpp_stanza_get_child_by_name_and_ns(stanza, "event", "http://jabber.org/protocol/pubsub#event"); + xmpp_stanza_t* event = xmpp_stanza_get_child_by_name_and_ns(stanza, STANZA_NAME_EVENT, STANZA_NS_PUBSUB_EVENT); if (event) { - xmpp_stanza_t* items = xmpp_stanza_get_child_by_name(event, "items"); + xmpp_stanza_t* items = xmpp_stanza_get_child_by_name(event, STANZA_NAME_ITEMS); if (items) { - xmpp_stanza_t* item = xmpp_stanza_get_child_by_name(items, "item"); + xmpp_stanza_t* item = xmpp_stanza_get_child_by_name(items, STANZA_NAME_ITEM); if (item) { - xmpp_stanza_t* mood = xmpp_stanza_get_child_by_name_and_ns(item, "mood", "http://jabber.org/protocol/mood"); + xmpp_stanza_t* mood = xmpp_stanza_get_child_by_name_and_ns(item, STANZA_NAME_MOOD, STANZA_NS_MOOD); if (mood) { xmpp_stanza_t* c = xmpp_stanza_get_children(mood); if (c) { const char* m = xmpp_stanza_get_name(c); - xmpp_stanza_t* t = xmpp_stanza_get_child_by_name(mood, "text"); + xmpp_stanza_t* t = xmpp_stanza_get_child_by_name(mood, STANZA_NAME_TEXT); if (t) { const char* text = xmpp_stanza_get_text(t); cons_show("Mood from %s %s (%s)", from, m, text); @@ -363,8 +361,8 @@ session_login_success(gboolean secured) reconnect_timer = NULL; } - message_pubsub_event_handler_add("http://jabber.org/protocol/mood", _receive_mood, NULL, NULL); - caps_add_feature("http://jabber.org/protocol/mood+notify"); + message_pubsub_event_handler_add(STANZA_NS_MOOD, _receive_mood, NULL, NULL); + caps_add_feature(STANZA_NS_MOOD_NOTIFY); } void diff --git a/src/xmpp/stanza.h b/src/xmpp/stanza.h index e2c22bd8..b4c65641 100644 --- a/src/xmpp/stanza.h +++ b/src/xmpp/stanza.h @@ -117,6 +117,8 @@ #define STANZA_NAME_USERNAME "username" #define STANZA_NAME_PROPOSE "propose" #define STANZA_NAME_REPORT "report" +#define STANZA_NAME_EVENT "event" +#define STANZA_NAME_MOOD "mood" // error conditions #define STANZA_NAME_BAD_REQUEST "bad-request" @@ -239,6 +241,8 @@ #define STANZA_NS_JINGLE_MESSAGE "urn:xmpp:jingle-message:0" #define STANZA_NS_JINGLE_RTP "urn:xmpp:jingle:apps:rtp:1" #define STANZA_NS_REPORTING "urn:xmpp:reporting:1" +#define STANZA_NS_MOOD "http://jabber.org/protocol/mood" +#define STANZA_NS_MOOD_NOTIFY "http://jabber.org/protocol/mood+notify" #define STANZA_DATAFORM_SOFTWARE "urn:xmpp:dataforms:softwareinfo"