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_blist_get_handle "purple_blist_get_handle" ()
void c_purple_blist_load "purple_blist_load" ()
PurpleBuddyList* c_purple_blist_new "purple_blist_new" ()
+ PurpleBlistNodeType c_purple_blist_node_get_type \
+ "purple_blist_node_get_type" (PurpleBlistNode *node)
+ int c_purple_blist_get_group_size "purple_blist_get_group_size" \
+ (PurpleGroup *group, glib.gboolean offline)
+ int c_purple_blist_get_group_online_count \
+ "purple_blist_get_group_online_count" (PurpleGroup *group)
void c_purple_blist_set_ui_ops "purple_blist_set_ui_ops" (PurpleBlistUiOps *ops)
-
+ const_char *c_purple_chat_get_name "purple_chat_get_name" (PurpleChat *chat)
+ const_char *c_purple_contact_get_alias "purple_contact_get_alias" (PurpleContact *contact)
+ const_char *c_purple_group_get_name "purple_group_get_name" (PurpleGroup *group)
PurpleBuddy *c_purple_buddy_new "purple_buddy_new" (account.PurpleAccount *account,
char *screenname, char *alias)
- char *c_purple_buddy_get_alias_only "purple_buddy_get_alias_only" (PurpleBuddy *buddy)
- char *c_purple_buddy_get_name "purple_buddy_get_name" (PurpleBuddy *buddy)
+ const_char *c_purple_buddy_get_alias_only "purple_buddy_get_alias_only" (PurpleBuddy *buddy)
+ const_char *c_purple_buddy_get_name "purple_buddy_get_name" (PurpleBuddy *buddy)
PurpleBuddy *c_purple_find_buddy "purple_find_buddy" (account.PurpleAccount *account, char *name)
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)