cimport glib
cimport account
-cimport status
+cimport buddyicon
cdef extern from *:
ctypedef char const_char "const char"
+# hack to avoid recursive loops by cython
+cdef extern from "libpurple/status.h":
+ ctypedef struct PurplePresence:
+ pass
+
cdef extern from "libpurple/blist.h":
ctypedef struct PurpleBuddyList
ctypedef struct PurpleBlistUiOps
PURPLE_BLIST_NODE_FLAG_NO_SAVE = 1 << 0
ctypedef struct PurpleBlistNode:
- pass
+ PurpleBlistNodeType type
+ PurpleBlistNode *prev
+ PurpleBlistNode *next
+ PurpleBlistNode *parent
+ PurpleBlistNode *child
+ glib.GHashTable *settings
+ void *ui_data
+ PurpleBlistNodeFlags flags
ctypedef struct PurpleBuddy:
char *name
char *alias
char *server_alias
+ void *proto_data
+ buddyicon.PurpleBuddyIcon *icon
+ account.PurpleAccount *account
+ PurplePresence *presence
ctypedef struct PurpleContact:
- pass
+ PurpleBlistNode node
+ char *alias
+ int totalsize
+ int currentsize
+ int online
+ PurpleBuddy *priority
+ glib.gboolean priority_valid
ctypedef struct PurpleGroup:
- pass
+ PurpleBlistNode node
+ char *name
+ int totalsize
+ int currentsize
+ int online
ctypedef struct PurpleChat:
- pass
+ PurpleBlistNode node
+ char *alias
+ glib.GHashTable *components
+ account.PurpleAccount *account
ctypedef struct PurpleBuddyList:
- pass
+ PurpleBlistNode *root
+ glib.GHashTable *buddies
+ void *ui_data
ctypedef struct PurpleBlistUiOps:
void (*new_list) (PurpleBuddyList *list)
void c_purple_set_blist "purple_set_blist" (PurpleBuddyList *list)
glib.GSList *c_purple_find_buddies "purple_find_buddies" (account.PurpleAccount *account, char *name)
account.PurpleAccount *c_purple_buddy_get_account "purple_buddy_get_account" (PurpleBuddy *buddy)
- status.PurplePresence *c_purple_buddy_get_presence "purple_buddy_get_presence" (PurpleBuddy *buddy)
+ PurplePresence *c_purple_buddy_get_presence "purple_buddy_get_presence" (PurpleBuddy *buddy)