if group.name:
name = group.name
else:
- name = None
+ name = ""
try:
callback(node.type, name, group.totalsize, group.currentsize, \
if contact.alias:
alias = contact.alias
else:
- alias = None
+ alias = ""
+
+ name = ""
try:
- callback(node.type, alias, contact.totalsize, contact.currentsize, \
+ callback(node.type, name, alias, contact.totalsize, contact.currentsize, \
contact.online)
except KeyError:
pass
elif buddy.alias:
alias = buddy.alias
else:
- alias = None
+ alias = ""
if buddy.name:
name = buddy.name
else:
- name = None
+ name = ""
try:
callback(node.type, name, alias)
if chat.alias:
alias = chat.alias
else:
- alias = None
+ alias = ""
try:
callback(node.type, alias)
cdef class Buddy:
""" Buddy class """
- cdef blist.PurpleBuddy *__buddy
+ cdef blist.PurpleBuddy *c_buddy
+ cdef Account __acc
def __init__(self):
- self.__buddy = NULL
+ self.c_buddy = NULL
def new_buddy(self, acc, char *scr, char *alias):
- self.__buddy = blist.c_purple_buddy_new(<account.PurpleAccount *>acc.__account, scr, alias)
+ self.__acc = acc
+ self.c_buddy = blist.c_purple_buddy_new(<account.PurpleAccount *>\
+ self.__acc.c_account, scr, alias)
- def get_alias(self):
- return <char *>blist.c_purple_buddy_get_alias_only(self.__buddy)
+ def __get_alias(self):
+ return <char *>blist.c_purple_buddy_get_alias_only(self.c_buddy)
+ alias = property(__get_alias)
+
+ def __get_name(self):
+ return <char *>blist.c_purple_buddy_get_name(self.c_buddy)
+ name = property(__get_name)
+
+ def __get_online(self):
+ name = self.name
+ self.c_buddy = blist.c_purple_find_buddy(self.__acc.c_account, name)
+ if status.c_purple_presence_is_online(blist.c_purple_buddy_get_presence(self.c_buddy)):
+ return True
+ else:
+ return False
+ online = property(__get_online)
- def get_name(self):
- return <char *>blist.c_purple_buddy_get_name(self.__buddy)
def __init__(self):
self.p = purple.Purple(debug_enabled=False)
self.window = MainWindow(self.quit)
- self.buddies = [] #online buddies
+ self.buddies = {} #all buddies
self.conversations = {}
self.account = None
self.protocol_id = "prpl-jabber"
self.window.add_send_cb(self.send_msg)
self.window.init_window()
- def _purple_update_blist_cb(self, type, name=None, totalsize=None,\
+ def _purple_update_blist_cb(self, type, name=None, alias=None, totalsize=None,\
currentsize=None, online=None):
- self.buddies = self.account.get_buddies_online()
if type == 2:
- if name in self.buddies:
- self.buddies.append(name)
+ if not self.buddies.has_key(name):
+ b = purple.Buddy()
+ b.new_buddy(self.account, name, alias)
+ self.buddies[name] = b
+ elif self.buddies[name].online is True:
self.window.new_buddy(name)
def _purple_signal_sign_off_cb(self, name, bname):
- self.buddies.remove(bname)
+ if self.buddies.has_key(bname):
+ self.buddies[bname] = None
+ self.buddies.pop(bname)
+ print "[DEBUG]: Buddy removed!"
self.window.remove_buddy(bname)
def _purple_create_conv_cb(self, name, type):