X-Git-Url: http://git.maemo.org/git/?p=python-purple;a=blobdiff_plain;f=buddy.pyx;h=5238396ce3ebdf87faefd1231aa8007f6bef0877;hp=fa3be794720fb442529c3fe7731476160fa3a5de;hb=c26c441d9acec8a214ed9a796df42167947db48a;hpb=7f9bbfa5e0f087ba5a5c1367ab1bea72f53573d0 diff --git a/buddy.pyx b/buddy.pyx index fa3be79..5238396 100644 --- a/buddy.pyx +++ b/buddy.pyx @@ -17,18 +17,54 @@ # along with this program. If not, see . # +cimport purple + cdef class Buddy: """ Buddy class """ - cdef PurpleBuddy *__buddy + cdef blist.PurpleBuddy *c_buddy + cdef Account __acc + + def __init__(self): + self.c_buddy = NULL + + def __get_account(self): + return self.__acc + def __set_account(self, acc): + self.__acc = acc + account = property(__get_account, __set_account) + + def __get_alias(self): + if self.c_buddy: + return blist.c_purple_buddy_get_alias_only(self.c_buddy) + else: + return None + alias = property(__get_alias) + + def __get_name(self): + if self.c_buddy: + return blist.c_purple_buddy_get_name(self.c_buddy) + else: + return None + name = property(__get_name) + + """ + def __get_online(self): # FIXME + name = self.name + self.c_buddy = blist.c_purple_find_buddy(self.__acc.c_account, name) + return status.c_purple_presence_is_online(blist.c_purple_buddy_get_presence(self.c_buddy)) + online = property(__get_online) + """ - def __cinit__(self): - self.__buddy = NULL + def new_buddy(self, acc, name, alias): + self.__acc = acc + cdef char *c_name = NULL + cdef char *c_alias = NULL - def new_buddy(self, acc, const_char_ptr scr, const_char_ptr alias): - self.__buddy = c_purple_buddy_new(acc.__account, scr, alias) + if name is not None: + c_name = name - def get_alias(self): - return c_purple_buddy_get_alias_only(self.__buddy) + if alias is not None: + c_alias = alias - def get_name(self): - return c_purple_buddy_get_name(self.__buddy) + self.c_buddy = blist.c_purple_buddy_new(\ + self.__acc.c_account, c_name, c_alias)