Updated nullclient.py
[python-purple] / conversation_cbs.pxd
index 1d0c76a..f3a6bd7 100644 (file)
@@ -34,13 +34,13 @@ cdef void create_conversation(conversation.PurpleConversation *conv):
     debug.purple_debug_info("conversation", "%s", "create-conversation\n")
     cdef char *c_name = NULL
 
-    c_name = <char *> conversation.c_purple_conversation_get_name(conv)
+    c_name = <char *> conversation.purple_conversation_get_name(conv)
     if c_name == NULL:
         name = None
     else:
         name = c_name
 
-    type = conversation.c_purple_conversation_get_type(conv)
+    type = conversation.purple_conversation_get_type(conv)
 
     if conversation_cbs.has_key("create-conversation"):
         (<object> conversation_cbs["create-conversation"])(name, type)
@@ -74,7 +74,7 @@ cdef void write_im(conversation.PurpleConversation *conv, const_char *who, \
     @see purple_conv_im_write()
     """
     debug.purple_debug_info("conversation", "%s", "write-im\n")
-    cdef account.PurpleAccount *acc = conversation.c_purple_conversation_get_account(conv)
+    cdef account.PurpleAccount *acc = conversation.purple_conversation_get_account(conv)
     cdef blist.PurpleBuddy *buddy = NULL
     cdef char *c_username = NULL
     cdef char *c_sender_alias = NULL
@@ -85,15 +85,16 @@ cdef void write_im(conversation.PurpleConversation *conv, const_char *who, \
     else:
         username = None
 
-    if who:
-        sender = <char *> who
-        buddy = blist.c_purple_find_buddy(acc, <char *> who)
-        c_sender_alias = <char *> blist.c_purple_buddy_get_alias_only(buddy)
-    else:
-        sender = None
+    if who == NULL:
+        who = conversation.purple_conversation_get_name(conv)
+
+    sender = <char *> who
+    buddy = blist.purple_find_buddy(acc, <char *> who)
+    if buddy:
+        c_sender_alias = <char *> blist.purple_buddy_get_alias_only(buddy)
 
     if c_sender_alias:
-        sender_alias = c_sender_alias
+        sender_alias = unicode(c_sender_alias, 'utf-8')
     else:
         sender_alias = None
 
@@ -102,9 +103,15 @@ cdef void write_im(conversation.PurpleConversation *conv, const_char *who, \
     else:
         message = None
 
+    # FIXME: Maybe we need add more purple flags in the future
+    if flags & conversation.PURPLE_MESSAGE_SEND:
+        flag = "SEND"
+    else:
+        flag = "RECV"
+
     if conversation_cbs.has_key("write-im"):
         (<object> conversation_cbs["write-im"])(username, sender, \
-                                                sender_alias, message)
+                               sender_alias, message, flag)
 
 cdef void write_conv(conversation.PurpleConversation *conv, const_char *name, \
         const_char *alias, const_char *message, \