X-Git-Url: http://git.maemo.org/git/?p=python-purple;a=blobdiff_plain;f=blist_cbs.pxd;h=01f68ed78679167bd58804e36f74958dca35ec69;hp=96268a4dc687db00e7d7adb546169894531a2dcd;hb=445c387d8067391f329186a13ce482dbb3c64c80;hpb=573def76e068006d507f09ea1239fcd6d6adfae7;ds=sidebyside diff --git a/blist_cbs.pxd b/blist_cbs.pxd index 96268a4..01f68ed 100644 --- a/blist_cbs.pxd +++ b/blist_cbs.pxd @@ -26,25 +26,32 @@ blist_cbs = {} cdef void __group_node_cb(blist.PurpleBlistNode *node, object callback): cdef blist.PurpleGroup *group = node + cdef char *c_name = NULL - if group.name: - name = group.name - else: + c_name = blist.c_purple_group_get_name(group) + if c_name == NULL: name = None + else: + name = c_name + + currentsize = blist.c_purple_blist_get_group_size(group, False) + totalsize = blist.c_purple_blist_get_group_size(group, True) + online = blist.c_purple_blist_get_group_online_count(group) try: - callback(node.type, name, group.totalsize, group.currentsize, \ - group.online) + callback(node.type, name, totalsize, currentsize, online) except KeyError: pass cdef void __contact_node_cb(blist.PurpleBlistNode *node, object callback): cdef blist.PurpleContact *contact = node + cdef char *c_alias = NULL - if contact.alias: - alias = contact.alias - else: + c_alias = blist.c_purple_contact_get_alias(contact) + if c_alias == NULL: alias = None + else: + alias = c_alias try: callback(node.type, alias, contact.totalsize, contact.currentsize, \ @@ -54,18 +61,20 @@ cdef void __contact_node_cb(blist.PurpleBlistNode *node, object callback): cdef void __buddy_node_cb(blist.PurpleBlistNode *node, object callback): cdef blist.PurpleBuddy *buddy = node + cdef char *c_name = NULL + cdef char *c_alias = NULL - if buddy.server_alias: - alias = buddy.server_alias - elif buddy.alias: - alias = buddy.alias + c_name = blist.c_purple_buddy_get_name(buddy) + if c_name == NULL: + name = None else: - alias = None + name = c_name - if buddy.name: - name = buddy.name + c_alias = blist.c_purple_buddy_get_alias_only(buddy) + if c_alias == NULL: + alias = None else: - name = None + alias = c_alias try: callback(node.type, name, alias) @@ -74,14 +83,16 @@ cdef void __buddy_node_cb(blist.PurpleBlistNode *node, object callback): cdef void __chat_node_cb(blist.PurpleBlistNode *node, object callback): cdef blist.PurpleChat *chat = node + cdef char *c_name = NULL - if chat.alias: - alias = chat.alias + c_name = blist.c_purple_chat_get_name(chat) + if c_name == NULL: + name = None else: - alias = None + name = c_name try: - callback(node.type, alias) + callback(node.type, name) except KeyError: pass @@ -100,22 +111,19 @@ cdef void new_list (blist.PurpleBuddyList *list): cdef void new_node (blist.PurpleBlistNode *node): debug.c_purple_debug(debug.PURPLE_DEBUG_INFO, "blist", "new_node\n") - - if node.type == blist.PURPLE_BLIST_GROUP_NODE: - __group_node_cb(node, blist_cbs["new_node"]) - elif node.type == blist.PURPLE_BLIST_CONTACT_NODE: - __contact_node_cb(node, blist_cbs["new_node"]) - elif node.type == blist.PURPLE_BLIST_BUDDY_NODE: - __buddy_node_cb(node, blist_cbs["new_node"]) - elif node.type == blist.PURPLE_BLIST_CHAT_NODE: - __chat_node_cb(node, blist_cbs["new_node"]) - elif node.type == blist.PURPLE_BLIST_OTHER_NODE: - __other_node_cb(node, blist_cbs["new_node"]) - else: - try: - (blist_cbs["new_node"])(node.type) - except KeyError: - pass + try: + if node.type == blist.PURPLE_BLIST_GROUP_NODE: + __group_node_cb(node, blist_cbs["new_node"]) + elif node.type == blist.PURPLE_BLIST_CONTACT_NODE: + __contact_node_cb(node, blist_cbs["new_node"]) + elif node.type == blist.PURPLE_BLIST_BUDDY_NODE: + __buddy_node_cb(node, blist_cbs["new_node"]) + elif node.type == blist.PURPLE_BLIST_CHAT_NODE: + __chat_node_cb(node, blist_cbs["new_node"]) + elif node.type == blist.PURPLE_BLIST_OTHER_NODE: + __other_node_cb(node, blist_cbs["new_node"]) + except KeyError: + pass cdef void show (blist.PurpleBuddyList *list): debug.c_purple_debug(debug.PURPLE_DEBUG_INFO, "blist", "show\n") @@ -126,41 +134,36 @@ cdef void show (blist.PurpleBuddyList *list): cdef void update (blist.PurpleBuddyList *list, blist.PurpleBlistNode *node): debug.c_purple_debug(debug.PURPLE_DEBUG_INFO, "blist", "update\n") - - if node.type == blist.PURPLE_BLIST_GROUP_NODE: - __group_node_cb(node, blist_cbs["update"]) - elif node.type == blist.PURPLE_BLIST_CONTACT_NODE: - __contact_node_cb(node, blist_cbs["update"]) - elif node.type == blist.PURPLE_BLIST_BUDDY_NODE: - __buddy_node_cb(node, blist_cbs["update"]) - elif node.type == blist.PURPLE_BLIST_CHAT_NODE: - __chat_node_cb(node, blist_cbs["update"]) - elif node.type == blist.PURPLE_BLIST_OTHER_NODE: - __other_node_cb(node, blist_cbs["update"]) - else: - try: - (blist_cbs["update"])(node.type) - except KeyError: - pass + try: + if node.type == blist.PURPLE_BLIST_GROUP_NODE: + __group_node_cb(node, blist_cbs["update"]) + elif node.type == blist.PURPLE_BLIST_CONTACT_NODE: + __contact_node_cb(node, blist_cbs["update"]) + elif node.type == blist.PURPLE_BLIST_BUDDY_NODE: + __buddy_node_cb(node, blist_cbs["update"]) + elif node.type == blist.PURPLE_BLIST_CHAT_NODE: + __chat_node_cb(node, blist_cbs["update"]) + elif node.type == blist.PURPLE_BLIST_OTHER_NODE: + __other_node_cb(node, blist_cbs["update"]) + except KeyError: + pass cdef void remove (blist.PurpleBuddyList *list, blist.PurpleBlistNode *node): debug.c_purple_debug(debug.PURPLE_DEBUG_INFO, "blist", "remove\n") - if node.type == blist.PURPLE_BLIST_GROUP_NODE: - __group_node_cb(node, blist_cbs["remove"]) - elif node.type == blist.PURPLE_BLIST_CONTACT_NODE: - __contact_node_cb(node, blist_cbs["remove"]) - elif node.type == blist.PURPLE_BLIST_BUDDY_NODE: - __buddy_node_cb(node, blist_cbs["remove"]) - elif node.type == blist.PURPLE_BLIST_CHAT_NODE: - __chat_node_cb(node, blist_cbs["remove"]) - elif node.type == blist.PURPLE_BLIST_OTHER_NODE: - __other_node_cb(node, blist_cbs["remove"]) - else: - try: - (blist_cbs["remove"])(node.type) - except KeyError: - pass + try: + if node.type == blist.PURPLE_BLIST_GROUP_NODE: + __group_node_cb(node, blist_cbs["remove"]) + elif node.type == blist.PURPLE_BLIST_CONTACT_NODE: + __contact_node_cb(node, blist_cbs["remove"]) + elif node.type == blist.PURPLE_BLIST_BUDDY_NODE: + __buddy_node_cb(node, blist_cbs["remove"]) + elif node.type == blist.PURPLE_BLIST_CHAT_NODE: + __chat_node_cb(node, blist_cbs["remove"]) + elif node.type == blist.PURPLE_BLIST_OTHER_NODE: + __other_node_cb(node, blist_cbs["remove"]) + except KeyError: + pass cdef void destroy (blist.PurpleBuddyList *list): debug.c_purple_debug(debug.PURPLE_DEBUG_INFO, "blist", "destroy\n") @@ -176,7 +179,7 @@ cdef void set_visible (blist.PurpleBuddyList *list, glib.gboolean show): except KeyError: pass -cdef void request_add_buddy (account.PurpleAccount *account, +cdef void request_add_buddy (account.PurpleAccount *acc, const_char *username, const_char *group, const_char *alias): debug.c_purple_debug(debug.PURPLE_DEBUG_INFO, "blist", "request_add_buddy\n") @@ -185,7 +188,7 @@ cdef void request_add_buddy (account.PurpleAccount *account, except KeyError: pass -cdef void request_add_chat (account.PurpleAccount *account, +cdef void request_add_chat (account.PurpleAccount *acc, blist.PurpleGroup *group, const_char *alias, const_char *name): debug.c_purple_debug(debug.PURPLE_DEBUG_INFO, "blist", "request_add_chat\n")