X-Git-Url: http://git.maemo.org/git/?p=python-purple;a=blobdiff_plain;f=buddy.pyx;h=5238396ce3ebdf87faefd1231aa8007f6bef0877;hp=33d36b7d0fbc90dd32e3af65f2dcf0b694c59182;hb=fa83e5e05e62fa5c6707312d375b97195143e6b7;hpb=e7e4e8ff4937aed9c1b732719bc310c3e8a88f5e
diff --git a/buddy.pyx b/buddy.pyx
index 33d36b7..5238396 100644
--- a/buddy.pyx
+++ b/buddy.pyx
@@ -17,20 +17,54 @@
# along with this program. If not, see .
#
-cimport blist
+cimport purple
cdef class Buddy:
""" Buddy class """
- cdef blist.PurpleBuddy *__buddy
+ cdef blist.PurpleBuddy *c_buddy
+ cdef Account __acc
- def __cinit__(self):
- self.__buddy = NULL
+ def __init__(self):
+ self.c_buddy = NULL
- def new_buddy(self, acc, char *scr, char *alias):
- self.__buddy = blist.c_purple_buddy_new(acc.__account, scr, alias)
+ 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):
- return blist.c_purple_buddy_get_alias_only(self.__buddy)
+ 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):
- return blist.c_purple_buddy_get_name(self.__buddy)
+ 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 new_buddy(self, acc, name, alias):
+ self.__acc = acc
+ cdef char *c_name = NULL
+ cdef char *c_alias = NULL
+
+ if name is not None:
+ c_name = name
+
+ if alias is not None:
+ c_alias = alias
+
+ self.c_buddy = blist.c_purple_buddy_new(\
+ self.__acc.c_account, c_name, c_alias)