Fixed parameters passed as argument to signals used by pidgin-carman.
authorRagner Magalhaes <ragner.magalhaes@openbossa.org>
Tue, 2 Dec 2008 20:35:40 +0000 (20:35 +0000)
committerAnderson Briglia <anderson.briglia@openbossa.org>
Sat, 28 Feb 2009 21:11:11 +0000 (17:11 -0400)
FIXES:
 - Stripped HTML markups from message.
 - Added robust treatment for arguments passed to user-defined python callbacks.

Signed-off-by: Bruno Abinader <bruno.abinader@indt.org.br>

git-svn-id: https://garage.maemo.org/svn/carman/branches/carman-0.7-beta2/python-purple@1321 596f6dd7-e928-0410-a184-9e12fd12cf7e

nullclient.py
signal_cbs.pxd

index 81a5ac2..1e2a422 100644 (file)
@@ -103,11 +103,11 @@ request_cbs["request_folder"] = request_callback
 cbs["request"] = request_cbs
 
 def buddy_signed_off_cb(name):
 cbs["request"] = request_cbs
 
 def buddy_signed_off_cb(name):
-    print "---- signal callback example: sign off from buddy %s" % name
+    print "---- sign off from buddy %s" % name
 
 
-def receiving_im_msg_cb(sender, message):
-    print "---- signal callback example: receiving im message from %s" % sender
-    print "---- message: %s" % message
+def receiving_im_msg_cb(sender, name, message):
+    print "---- receiving IM message from %s: %s" % (name, message)
+    return False
 
 signal_cbs["buddy_signed_off"] = buddy_signed_off_cb
 signal_cbs["receiving_im_msg"] = receiving_im_msg_cb
 
 signal_cbs["buddy_signed_off"] = buddy_signed_off_cb
 signal_cbs["receiving_im_msg"] = receiving_im_msg_cb
index 00369e8..41ff95f 100644 (file)
@@ -24,8 +24,17 @@ signal_cbs = {}
 cdef void signal_buddy_signed_off_cb (blist.PurpleBuddy *buddy):
     debug.c_purple_debug(debug.PURPLE_DEBUG_INFO, "signal",
                          "buddy_signed_off\n")
 cdef void signal_buddy_signed_off_cb (blist.PurpleBuddy *buddy):
     debug.c_purple_debug(debug.PURPLE_DEBUG_INFO, "signal",
                          "buddy_signed_off\n")
+
+    if buddy.server_alias:
+        name = buddy.server_alias
+    else:
+        if buddy.alias:
+            name = buddy.alias
+        else:
+            name = buddy.name
+
     try:
     try:
-        (<object>signal_cbs["buddy_signed_off"])(buddy.name)
+        (<object>signal_cbs["buddy_signed_off"])(name)
     except KeyError:
         pass
 
     except KeyError:
         pass
 
@@ -36,7 +45,20 @@ cdef glib.gboolean signal_receiving_im_msg_cb (account.PurpleAccount *account,
                                         conversation.PurpleMessageFlags *flags):
     debug.c_purple_debug(debug.PURPLE_DEBUG_INFO, "signal",
                          "receivinv_im_msg_cb\n")
                                         conversation.PurpleMessageFlags *flags):
     debug.c_purple_debug(debug.PURPLE_DEBUG_INFO, "signal",
                          "receivinv_im_msg_cb\n")
+
+    cdef blist.PurpleBuddy *buddy = blist.c_purple_find_buddy(account, sender[0])
+
+    if buddy.server_alias:
+        name = buddy.server_alias
+    else:
+        if buddy.alias:
+            name = buddy.alias
+        else:
+            name = buddy.name
+
+    stripped_msg = util.c_purple_markup_strip_html(message[0])
+
     try:
     try:
-        (<object>signal_cbs["receiving_im_msg"])(sender[0], message[0])
+        return (<object>signal_cbs["receiving_im_msg"])(sender[0], name, stripped_msg)
     except KeyError:
     except KeyError:
-        pass
+        return False