# HG changeset patch # User Andreas Monitzer # Date 1181604819 0 # Node ID df5bb342b10ef39f860f779a0e581d9c2df6acb2 # Parent cac26c30047aa9763a29c895234ccf0dd57655bf implemented user mood, still missing the front end interface diff -r cac26c30047a -r df5bb342b10e libpurple/protocols/jabber/buddy.h --- a/libpurple/protocols/jabber/buddy.h Sun Jun 10 12:22:39 2007 +0000 +++ b/libpurple/protocols/jabber/buddy.h Mon Jun 11 23:33:39 2007 +0000 @@ -23,6 +23,7 @@ #define _PURPLE_JABBER_BUDDY_H_ #include "jabber.h" +#include "usermood.h" typedef enum { JABBER_BUDDY_STATE_UNKNOWN = -2, diff -r cac26c30047a -r df5bb342b10e libpurple/protocols/jabber/jabber.c --- a/libpurple/protocols/jabber/jabber.c Sun Jun 10 12:22:39 2007 +0000 +++ b/libpurple/protocols/jabber/jabber.c Mon Jun 11 23:33:39 2007 +0000 @@ -1271,6 +1271,8 @@ NULL, TRUE, TRUE, FALSE, "priority", _("Priority"), priority_value, "message", _("Message"), purple_value_new(PURPLE_TYPE_STRING), + "mood", _("Mood"), purple_value_new(PURPLE_TYPE_INT), + "moodtext", _("Mood Text"), purple_value_new(PURPLE_TYPE_STRING), NULL); types = g_list_append(types, type); @@ -1281,6 +1283,8 @@ _("Chatty"), TRUE, TRUE, FALSE, "priority", _("Priority"), priority_value, "message", _("Message"), purple_value_new(PURPLE_TYPE_STRING), + "mood", _("Mood"), purple_value_new(PURPLE_TYPE_INT), + "moodtext", _("Mood Text"), purple_value_new(PURPLE_TYPE_STRING), NULL); types = g_list_append(types, type); @@ -1291,6 +1295,8 @@ NULL, TRUE, TRUE, FALSE, "priority", _("Priority"), priority_value, "message", _("Message"), purple_value_new(PURPLE_TYPE_STRING), + "mood", _("Mood"), purple_value_new(PURPLE_TYPE_INT), + "moodtext", _("Mood Text"), purple_value_new(PURPLE_TYPE_STRING), NULL); types = g_list_append(types, type); @@ -1301,6 +1307,8 @@ NULL, TRUE, TRUE, FALSE, "priority", _("Priority"), priority_value, "message", _("Message"), purple_value_new(PURPLE_TYPE_STRING), + "mood", _("Mood"), purple_value_new(PURPLE_TYPE_INT), + "moodtext", _("Mood Text"), purple_value_new(PURPLE_TYPE_STRING), NULL); types = g_list_append(types, type); @@ -1311,6 +1319,8 @@ _("Do Not Disturb"), TRUE, TRUE, FALSE, "priority", _("Priority"), priority_value, "message", _("Message"), purple_value_new(PURPLE_TYPE_STRING), + "mood", _("Mood"), purple_value_new(PURPLE_TYPE_INT), + "moodtext", _("Mood Text"), purple_value_new(PURPLE_TYPE_STRING), NULL); types = g_list_append(types, type); diff -r cac26c30047a -r df5bb342b10e libpurple/protocols/jabber/pep.c --- a/libpurple/protocols/jabber/pep.c Sun Jun 10 12:22:39 2007 +0000 +++ b/libpurple/protocols/jabber/pep.c Mon Jun 11 23:33:39 2007 +0000 @@ -29,7 +29,8 @@ if(!pep_handlers) { pep_handlers = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, NULL); - /* register PEP handlers here */ + /* register PEP handlers */ + jabber_mood_init(); } } @@ -44,15 +45,18 @@ /* this may be called even when the own server doesn't support pep! */ JabberPEPHandler *jph; GList *itemslist; + char *jid = jabber_get_bare_jid(jm->from); + for(itemslist = jm->eventitems; itemslist; itemslist = itemslist->next) { xmlnode *items = (xmlnode*)itemslist->data; const char *xmlns = xmlnode_get_namespace(items); if((jph = g_hash_table_lookup(pep_handlers, xmlns))) - jph(jm->js, items); + jph(jm->js, jid, items); } /* discard items we don't have a handler for */ + g_free(jid); } void jabber_pep_publish(JabberStream *js, xmlnode *publish) { diff -r cac26c30047a -r df5bb342b10e libpurple/protocols/jabber/pep.h --- a/libpurple/protocols/jabber/pep.h Sun Jun 10 12:22:39 2007 +0000 +++ b/libpurple/protocols/jabber/pep.h Mon Jun 11 23:33:39 2007 +0000 @@ -24,6 +24,7 @@ #include "jabber.h" #include "message.h" +#include "buddy.h" void jabber_pep_init(void); @@ -33,7 +34,7 @@ * @parameter js The JabberStream this item was received on * @parameter items The <items/>-tag with the <item/>-children */ -typedef void (JabberPEPHandler)(JabberStream *js, xmlnode *items); +typedef void (JabberPEPHandler)(JabberStream *js, const char *from, xmlnode *items); /* * Registers a callback for PEP events. Also automatically announces this receiving capability via disco#info. diff -r cac26c30047a -r df5bb342b10e libpurple/xmlnode.h --- a/libpurple/xmlnode.h Sun Jun 10 12:22:39 2007 +0000 +++ b/libpurple/xmlnode.h Mon Jun 11 23:33:39 2007 +0000 @@ -252,7 +252,7 @@ xmlnode *xmlnode_copy(const xmlnode *src); /** - * Frees a node and all of it's children. + * Frees a node and all of its children. * * @param node The node to free. */