From e7e4e8ff4937aed9c1b732719bc310c3e8a88f5e Mon Sep 17 00:00:00 2001 From: Ragner Magalhaes Date: Tue, 2 Dec 2008 20:20:15 +0000 Subject: [PATCH] All includes now uses cimport. Moved .pxd files from root dir to .pyx files, fixed enum declarations. Hi all, sorry for the long patch. FIXES: - Moved all .pxd files from root directory to .pyx ones. - Use "cimport " instead of "include". - Fixed enum declarations. - Fixed directory declaration on setup.py. Signed-off-by: Bruno Abinader git-svn-id: https://garage.maemo.org/svn/carman/branches/carman-0.7-beta2/python-purple@1295 596f6dd7-e928-0410-a184-9e12fd12cf7e --- account.pxd | 81 --------------------- account.pyx | 65 +++++++++++++++++ buddy.pxd | 34 --------- buddy.pyx | 36 ++++++++++ connection.pxd | 25 ------- connection.pyx | 27 +++++++ conversation.pxd | 62 ---------------- conversation.pyx | 64 +++++++++++++++++ glib.pxd | 62 ---------------- libpurple/account.pxd | 16 +++-- libpurple/blist.pxd | 25 +++---- libpurple/conversation.pxd | 35 ++++++---- libpurple/core.pxd | 8 ++- libpurple/debug.pxd | 6 +- libpurple/eventloop.pxd | 14 ++-- libpurple/glib.pxd | 64 +++++++++++++++++ libpurple/plugin.pxd | 6 +- libpurple/pounce.pxd | 4 +- libpurple/prefs.pxd | 10 +-- libpurple/proxy.pxd | 4 +- libpurple/savedstatuses.pxd | 4 +- libpurple/signals.pxd | 8 ++- libpurple/status.pxd | 16 ++++- libpurple/util.pxd | 2 +- purple.pyx | 163 +++++++++++++++++++++---------------------- setup.py | 22 +++--- 26 files changed, 446 insertions(+), 417 deletions(-) delete mode 100644 account.pxd create mode 100644 account.pyx delete mode 100644 buddy.pxd create mode 100644 buddy.pyx delete mode 100644 connection.pxd create mode 100644 connection.pyx delete mode 100644 conversation.pxd create mode 100644 conversation.pyx delete mode 100644 glib.pxd create mode 100644 libpurple/glib.pxd diff --git a/account.pxd b/account.pxd deleted file mode 100644 index b5c765f..0000000 --- a/account.pxd +++ /dev/null @@ -1,81 +0,0 @@ -# -# Copyright (c) 2008 INdT - Instituto Nokia de Tecnologia -# -# This file is part of python-purple. -# -# python-purple is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# python-purple is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . -# - -class ProxyType: - def __init__(self): - self.PROXY_USE_GLOBAL = -1 - self.PROXY_NONE = 0 - self.PROXY_HTTP = 1 - self.PROXY_SOCKS4 = 2 - self.PROXY_SOCKS5 = 3 - self.PROXY_USE_ENVVAR = 4 - - -class StatusPrimitive: - def __init__(self): - self.STAUTS_UNSET = 0 - self.STATUS_OFFLINE = 1 - self.STATUS_AVAILABLE = 2 - self.STATUS_UNAVAILABLE = 3 - self.STATUS_INVISIBLE = 4 - self.STATUS_AWAY = 5 - self.STATUS_EXTENDED_AWAY = 6 - self.STATUS_MOBILE = 7 - self.STATUS_TUNE = 8 - self.STATUS_NUN_PRIMITIVE = 9 - -cdef class Account: - """ Account class """ - cdef PurpleAccount *__account - cdef PurpleSavedStatus *__sstatus - - def __cinit__(self, const_char_ptr username, const_char_ptr protocol_id): - self.__account = c_purple_account_new(username, protocol_id) - - def set_password(self, password): - c_purple_account_set_password(self.__account, password) - - def set_enabled(self, ui, value): - c_purple_account_set_enabled(self.__account, ui, value) - - def get_acc_username(self): - if self.__account: - return c_purple_account_get_username(self.__account) - - def get_password(self): - if self.__account: - return c_purple_account_get_password(self.__account) - - def set_status(self): - self.__sstatus = c_purple_savedstatus_new(NULL, StatusPrimitive().STATUS_AVAILABLE) - c_purple_savedstatus_activate(self.__sstatus) - - def get_buddies_online(self, account): - cdef GSList *iter - cdef PurpleBuddy *buddy - buddies = [] - iter = c_purple_find_buddies(self.__account, NULL) - while iter: - buddy = iter.data - if buddy and \ - c_purple_account_is_connected(c_purple_buddy_get_account(buddy)) and \ - c_purple_presence_is_online(c_purple_buddy_get_presence(buddy)): - buddies += [buddy.name] - iter = iter.next - return buddies diff --git a/account.pyx b/account.pyx new file mode 100644 index 0000000..0e98548 --- /dev/null +++ b/account.pyx @@ -0,0 +1,65 @@ +# +# Copyright (c) 2008 INdT - Instituto Nokia de Tecnologia +# +# This file is part of python-purple. +# +# python-purple is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# python-purple is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + +cimport glib + +cimport account +cimport blist +cimport savedstatuses +cimport status + +cdef class Account: + """ Account class """ + cdef account.PurpleAccount *__account + cdef savedstatuses.PurpleSavedStatus *__sstatus + + def __cinit__(self, char *username, char *protocol_id): + self.__account = account.c_purple_account_new(username, protocol_id) + + def set_password(self, password): + account.c_purple_account_set_password(self.__account, password) + + def set_enabled(self, ui, value): + account.c_purple_account_set_enabled(self.__account, ui, value) + + def get_acc_username(self): + if self.__account: + return account.c_purple_account_get_username(self.__account) + + def get_password(self): + if self.__account: + return account.c_purple_account_get_password(self.__account) + + def set_status(self): + self.__sstatus = savedstatuses.c_purple_savedstatus_new(NULL, status.PURPLE_STATUS_AVAILABLE) + savedstatuses.c_purple_savedstatus_activate(self.__sstatus) + + def get_buddies_online(self, acc): + cdef glib.GSList *iter + cdef blist.PurpleBuddy *buddy + buddies = [] + iter = blist.c_purple_find_buddies(self.__account, NULL) + while iter: + buddy = iter.data + if buddy and \ + account.c_purple_account_is_connected(blist.c_purple_buddy_get_account(buddy)) and \ + status.c_purple_presence_is_online(blist.c_purple_buddy_get_presence(buddy)): + buddies += [buddy.name] + iter = iter.next + return buddies diff --git a/buddy.pxd b/buddy.pxd deleted file mode 100644 index fa3be79..0000000 --- a/buddy.pxd +++ /dev/null @@ -1,34 +0,0 @@ -# -# Copyright (c) 2008 INdT - Instituto Nokia de Tecnologia -# -# This file is part of python-purple. -# -# python-purple is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# python-purple is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . -# - -cdef class Buddy: - """ Buddy class """ - cdef PurpleBuddy *__buddy - - def __cinit__(self): - self.__buddy = NULL - - def new_buddy(self, acc, const_char_ptr scr, const_char_ptr alias): - self.__buddy = c_purple_buddy_new(acc.__account, scr, alias) - - def get_alias(self): - return c_purple_buddy_get_alias_only(self.__buddy) - - def get_name(self): - return c_purple_buddy_get_name(self.__buddy) diff --git a/buddy.pyx b/buddy.pyx new file mode 100644 index 0000000..33d36b7 --- /dev/null +++ b/buddy.pyx @@ -0,0 +1,36 @@ +# +# Copyright (c) 2008 INdT - Instituto Nokia de Tecnologia +# +# This file is part of python-purple. +# +# python-purple is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# python-purple is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + +cimport blist + +cdef class Buddy: + """ Buddy class """ + cdef blist.PurpleBuddy *__buddy + + def __cinit__(self): + self.__buddy = NULL + + def new_buddy(self, acc, char *scr, char *alias): + self.__buddy = blist.c_purple_buddy_new(acc.__account, scr, alias) + + def get_alias(self): + return blist.c_purple_buddy_get_alias_only(self.__buddy) + + def get_name(self): + return blist.c_purple_buddy_get_name(self.__buddy) diff --git a/connection.pxd b/connection.pxd deleted file mode 100644 index 1531059..0000000 --- a/connection.pxd +++ /dev/null @@ -1,25 +0,0 @@ -# -# Copyright (c) 2008 INdT - Instituto Nokia de Tecnologia -# -# This file is part of python-purple. -# -# python-purple is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# python-purple is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . -# - -cdef class Connection: - """ Connection class """ - cdef PurpleConnection *__conn - - def connect(self): - connect_to_signals_for_demonstration_purposes_only() diff --git a/connection.pyx b/connection.pyx new file mode 100644 index 0000000..2e9a8f4 --- /dev/null +++ b/connection.pyx @@ -0,0 +1,27 @@ +# +# Copyright (c) 2008 INdT - Instituto Nokia de Tecnologia +# +# This file is part of python-purple. +# +# python-purple is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# python-purple is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + +cimport connection + +cdef class Connection: + """ Connection class """ + cdef connection.PurpleConnection *__conn + + def connect(self): + connect_to_signals_for_demonstration_purposes_only() diff --git a/conversation.pxd b/conversation.pxd deleted file mode 100644 index ee3b26c..0000000 --- a/conversation.pxd +++ /dev/null @@ -1,62 +0,0 @@ -# -# Copyright (c) 2008 INdT - Instituto Nokia de Tecnologia -# -# This file is part of python-purple. -# -# python-purple is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# python-purple is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . -# - -cdef class Conversation: - """ Conversation class """ - cdef PurpleConversation *__conv - - def __cinit__(self): - c_purple_conversations_init() - - def conversation_new(self, type, acc, const_char_ptr name): - self.__conv = c_purple_conversation_new(type, acc.__account, name) - - def conversation_set_ui_ops(self): - cdef PurpleConversationUiOps c_conv_ui_ops - c_conv_ui_ops.create_conversation = NULL - c_conv_ui_ops.destroy_conversation = NULL - c_conv_ui_ops.write_chat = NULL - c_conv_ui_ops.write_im = NULL - c_conv_ui_ops.write_conv = NULL - c_conv_ui_ops.chat_add_users = NULL - c_conv_ui_ops.chat_rename_user = NULL - c_conv_ui_ops.chat_remove_users = NULL - c_conv_ui_ops.chat_update_user = NULL - c_conv_ui_ops.present = NULL - c_conv_ui_ops.has_focus = NULL - c_conv_ui_ops.custom_smiley_add = NULL - c_conv_ui_ops.custom_smiley_write = NULL - c_conv_ui_ops.custom_smiley_close = NULL - c_conv_ui_ops.send_confirm = NULL - - c_purple_conversation_set_ui_ops(self.__conv, &c_conv_ui_ops) - - def conversation_write(self, const_char_ptr message): - c_purple_conv_im_send(c_purple_conversation_get_im_data(self.__conv), message) - - def conversation_destroy(self): - c_purple_conversation_destroy(self.__conv) - - def conversation_get_handle(self): - c_purple_conversations_get_handle() - - def send_message(self, buddy, const_char_ptr message): - self.conversation_new(1, buddy.account, buddy.name) - self.conversation_set_ui_ops() - self.conversation_write(message) diff --git a/conversation.pyx b/conversation.pyx new file mode 100644 index 0000000..a00d0ed --- /dev/null +++ b/conversation.pyx @@ -0,0 +1,64 @@ +# +# Copyright (c) 2008 INdT - Instituto Nokia de Tecnologia +# +# This file is part of python-purple. +# +# python-purple is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# python-purple is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + +cimport conversation + +cdef class Conversation: + """ Conversation class """ + cdef conversation.PurpleConversation *__conv + + def __cinit__(self): + conversation.c_purple_conversations_init() + + def conversation_new(self, type, acc, char *name): + self.__conv = conversation.c_purple_conversation_new(type, acc.__account, name) + + def conversation_set_ui_ops(self): + cdef conversation.PurpleConversationUiOps c_conv_ui_ops + c_conv_ui_ops.create_conversation = NULL + c_conv_ui_ops.destroy_conversation = NULL + c_conv_ui_ops.write_chat = NULL + c_conv_ui_ops.write_im = NULL + c_conv_ui_ops.write_conv = NULL + c_conv_ui_ops.chat_add_users = NULL + c_conv_ui_ops.chat_rename_user = NULL + c_conv_ui_ops.chat_remove_users = NULL + c_conv_ui_ops.chat_update_user = NULL + c_conv_ui_ops.present = NULL + c_conv_ui_ops.has_focus = NULL + c_conv_ui_ops.custom_smiley_add = NULL + c_conv_ui_ops.custom_smiley_write = NULL + c_conv_ui_ops.custom_smiley_close = NULL + c_conv_ui_ops.send_confirm = NULL + + conversation.c_purple_conversation_set_ui_ops(self.__conv, &c_conv_ui_ops) + + def conversation_write(self, char *message): + conversation.c_purple_conv_im_send(conversation.c_purple_conversation_get_im_data(self.__conv), message) + + def conversation_destroy(self): + conversation.c_purple_conversation_destroy(self.__conv) + + def conversation_get_handle(self): + conversation.c_purple_conversations_get_handle() + + def send_message(self, buddy, char *message): + self.conversation_new(1, buddy.account, buddy.name) + self.conversation_set_ui_ops() + self.conversation_write(message) diff --git a/glib.pxd b/glib.pxd deleted file mode 100644 index e651a95..0000000 --- a/glib.pxd +++ /dev/null @@ -1,62 +0,0 @@ -# -# Copyright (c) 2008 INdT - Instituto Nokia de Tecnologia -# -# This file is part of python-purple. -# -# python-purple is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# python-purple is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . -# - -cdef extern from "glib.h": - ctypedef void *gpointer - ctypedef void *gconstpointer - ctypedef int gint - ctypedef unsigned int guint - ctypedef unsigned long gulong - ctypedef gint gboolean - ctypedef gboolean (*GSourceFunc) (gpointer data) - ctypedef unsigned int gsize - - ctypedef struct GHashTable: - pass - - ctypedef struct GMainContext: - pass - - struct _GSList: - gpointer data - _GSList *next - ctypedef _GSList GSList - - struct _GList: - gpointer data - _GList *next - _GList *prev - ctypedef _GList GList - - ctypedef guint GHashFunc (gconstpointer) - ctypedef gboolean GEqualFunc (gconstpointer, gconstpointer) - - gboolean g_str_equal (gconstpointer, gconstpointer) - guint g_str_hash (gconstpointer) - - GHashTable *g_hash_table_new (GHashFunc, GEqualFunc) - void g_hash_table_insert (GHashTable*, gpointer, gpointer) - void g_hash_table_destroy (GHashTable*) - - guint g_timeout_add(guint interval, GSourceFunc function, gpointer data) - guint g_timeout_add_seconds(guint interval, GSourceFunc function, gpointer data) - - gboolean g_main_context_iteration (GMainContext *context, gboolean may_block) - - gboolean g_source_remove(guint tag) diff --git a/libpurple/account.pxd b/libpurple/account.pxd index 69d6eff..bbda93a 100644 --- a/libpurple/account.pxd +++ b/libpurple/account.pxd @@ -17,6 +17,8 @@ # along with this program. If not, see . # +cimport glib + cdef extern from "libpurple/account.h": ctypedef struct PurpleAccount: char* username @@ -24,11 +26,11 @@ cdef extern from "libpurple/account.h": ctypedef struct PurpleAccountUiOps: pass - PurpleAccount *c_purple_account_new "purple_account_new" (const_char_ptr username, const_char_ptr protocol_id) - void c_purple_account_set_password "purple_account_set_password" (PurpleAccount *account, const_char_ptr password) - const_char_ptr c_purple_account_get_password "purple_account_get_password" (PurpleAccount *account) - void c_purple_account_set_enabled "purple_account_set_enabled" (PurpleAccount *account, const_char_ptr ui, gboolean value) - const_char_ptr c_purple_account_get_username "purple_account_get_username" (PurpleAccount *account) - GList *c_purple_accounts_get_all_active "purple_accounts_get_all_active" () + PurpleAccount *c_purple_account_new "purple_account_new" (char *username, char *protocol_id) + void c_purple_account_set_password "purple_account_set_password" (PurpleAccount *account, char *password) + char *c_purple_account_get_password "purple_account_get_password" (PurpleAccount *account) + void c_purple_account_set_enabled "purple_account_set_enabled" (PurpleAccount *account, char *ui, glib.gboolean value) + char *c_purple_account_get_username "purple_account_get_username" (PurpleAccount *account) + glib.GList *c_purple_accounts_get_all_active "purple_accounts_get_all_active" () void c_purple_accounts_set_ui_ops "purple_accounts_set_ui_ops" (PurpleAccountUiOps *ops) - gboolean c_purple_account_is_connected "purple_account_is_connected" (PurpleAccount *account) + glib.gboolean c_purple_account_is_connected "purple_account_is_connected" (PurpleAccount *account) diff --git a/libpurple/blist.pxd b/libpurple/blist.pxd index 2c1ffff..37780fe 100644 --- a/libpurple/blist.pxd +++ b/libpurple/blist.pxd @@ -17,6 +17,10 @@ # along with this program. If not, see . # +cimport glib +cimport account +cimport status + cdef extern from "libpurple/blist.h": ctypedef struct PurpleBlistNode: pass @@ -24,11 +28,9 @@ cdef extern from "libpurple/blist.h": ctypedef struct PurpleBlistUiOps: pass - cdef struct _PurpleBuddy: + ctypedef struct PurpleBuddy: char *name - ctypedef _PurpleBuddy PurpleBuddy - ctypedef struct PurpleBuddyList: pass @@ -40,13 +42,12 @@ cdef extern from "libpurple/blist.h": PurpleBuddyList* c_purple_blist_new "purple_blist_new" () void c_purple_blist_set_ui_ops "purple_blist_set_ui_ops" (PurpleBlistUiOps *ops) - PurpleBuddy *c_purple_buddy_new "purple_buddy_new" (PurpleAccount *account, - const_char_ptr screenname, const_char_ptr alias) - const_char_ptr c_purple_buddy_get_alias_only "purple_buddy_get_alias_only" (PurpleBuddy *buddy) - const_char_ptr c_purple_buddy_get_name "purple_buddy_get_name" (PurpleBuddy *buddy) - PurpleBuddy *c_purple_find_buddy "purple_find_buddy" (PurpleAccount *account, - const_char_ptr name) + 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) + PurpleBuddy *c_purple_find_buddy "purple_find_buddy" (account.PurpleAccount *account, char *name) void c_purple_set_blist "purple_set_blist" (PurpleBuddyList *list) - GSList *c_purple_find_buddies "purple_find_buddies" (PurpleAccount *account, const_char_ptr name) - PurpleAccount *c_purple_buddy_get_account "purple_buddy_get_account" (PurpleBuddy *buddy) - PurplePresence *c_purple_buddy_get_presence "purple_buddy_get_presence" (PurpleBuddy *buddy) + 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) diff --git a/libpurple/conversation.pxd b/libpurple/conversation.pxd index e4710b7..8932eb4 100644 --- a/libpurple/conversation.pxd +++ b/libpurple/conversation.pxd @@ -17,6 +17,13 @@ # along with this program. If not, see . # +cimport glib + +cimport account + +cdef extern from "time.h": + ctypedef long int time_t + cdef extern from "libpurple/conversation.h": ctypedef struct PurpleConversation: pass @@ -44,25 +51,25 @@ cdef extern from "libpurple/conversation.h": ctypedef struct PurpleConversationUiOps: void (*create_conversation) (PurpleConversation *conv) void (*destroy_conversation) (PurpleConversation *conv) - void (*write_chat) (PurpleConversation *conv, const_char_ptr who, const_char_ptr message, PurpleMessageFlags flags, time_t mtime) - void (*write_im) (PurpleConversation *conv, const_char_ptr who, const_char_ptr message, PurpleMessageFlags flags, time_t mtime) - void (*write_conv) (PurpleConversation *conv, const_char_ptr name, const_char_ptr alias, const_char_ptr message, PurpleMessageFlags flags, time_t mtime) - void (*chat_add_users) (PurpleConversation *conv, GList *cbuddies, gboolean new_arrivals) - void (*chat_rename_user) (PurpleConversation *conv, const_char_ptr old_name, const_char_ptr new_name, const_char_ptr new_alias) - void (*chat_remove_users) (PurpleConversation *conv, GList *users) - void (*chat_update_user) (PurpleConversation *conv, const_char_ptr user) + void (*write_chat) (PurpleConversation *conv, char *who, char *message, PurpleMessageFlags flags, time_t mtime) + void (*write_im) (PurpleConversation *conv, char *who, char *message, PurpleMessageFlags flags, time_t mtime) + void (*write_conv) (PurpleConversation *conv, char *name, char *alias, char *message, PurpleMessageFlags flags, time_t mtime) + void (*chat_add_users) (PurpleConversation *conv, glib.GList *cbuddies, glib.gboolean new_arrivals) + void (*chat_rename_user) (PurpleConversation *conv, char *old_name, char *new_name, char *new_alias) + void (*chat_remove_users) (PurpleConversation *conv, glib.GList *users) + void (*chat_update_user) (PurpleConversation *conv, char *user) void (*present) (PurpleConversation *conv) - gboolean (*has_focus) (PurpleConversation *conv) - gboolean (*custom_smiley_add) (PurpleConversation *conv, const_char_ptr smile, gboolean remote) - void (*custom_smiley_write) (PurpleConversation *conv, const_char_ptr smile, const_guchar_ptr data, gsize size) - void (*custom_smiley_close) (PurpleConversation *conv, const_char_ptr smile) - void (*send_confirm) (PurpleConversation *conv, const_char_ptr message) + glib.gboolean (*has_focus) (PurpleConversation *conv) + glib.gboolean (*custom_smiley_add) (PurpleConversation *conv, char *smile, glib.gboolean remote) + void (*custom_smiley_write) (PurpleConversation *conv, char *smile, glib.guchar *data, glib.gsize size) + void (*custom_smiley_close) (PurpleConversation *conv, char *smile) + void (*send_confirm) (PurpleConversation *conv, char *message) void c_purple_conversations_init "purple_conversations_init" () void *c_purple_conversations_get_handle "purple_conversations_get_handle" () - PurpleConversation *c_purple_conversation_new "purple_conversation_new" (int type, PurpleAccount *account, const_char_ptr name) + PurpleConversation *c_purple_conversation_new "purple_conversation_new" (int type, account.PurpleAccount *account, char *name) void c_purple_conversation_set_ui_ops "purple_conversation_set_ui_ops" (PurpleConversation *conv, PurpleConversationUiOps *ops) void c_purple_conversations_set_ui_ops "purple_conversations_set_ui_ops" (PurpleConversationUiOps *ops) PurpleConvIm *c_purple_conversation_get_im_data "purple_conversation_get_im_data" (PurpleConversation *conv) - void c_purple_conv_im_send "purple_conv_im_send" (PurpleConvIm *im, const_char_ptr message) + void c_purple_conv_im_send "purple_conv_im_send" (PurpleConvIm *im, char *message) void c_purple_conversation_destroy "purple_conversation_destroy" (PurpleConversation *conv) diff --git a/libpurple/core.pxd b/libpurple/core.pxd index 10803a2..c5348b3 100644 --- a/libpurple/core.pxd +++ b/libpurple/core.pxd @@ -17,15 +17,17 @@ # along with this program. If not, see . # +cimport glib + cdef extern from "libpurple/core.h": ctypedef struct PurpleCoreUiOps: void (*ui_prefs_init) () void (*debug_ui_init) () void (*ui_init) () void (*quit) () - GHashTable* (*get_ui_info) () + glib.GHashTable* (*get_ui_info) () - gboolean c_purple_core_init "purple_core_init" (const_char_ptr ui_name) + glib.gboolean c_purple_core_init "purple_core_init" (char *ui_name) void c_purple_core_quit "purple_core_quit" () void c_purple_core_set_ui_ops "purple_core_set_ui_ops" (PurpleCoreUiOps *ops) - gboolean c_purple_core_ensure_single_instance "purple_core_ensure_single_instance" () + glib.gboolean c_purple_core_ensure_single_instance "purple_core_ensure_single_instance" () diff --git a/libpurple/debug.pxd b/libpurple/debug.pxd index 5132501..52dc9e9 100644 --- a/libpurple/debug.pxd +++ b/libpurple/debug.pxd @@ -17,6 +17,8 @@ # along with this program. If not, see . # +cimport glib + cdef extern from "libpurple/debug.h": ctypedef enum PurpleDebugLevel: PURPLE_DEBUG_ALL @@ -26,5 +28,5 @@ cdef extern from "libpurple/debug.h": PURPLE_DEBUG_ERROR PURPLE_DEBUG_FATAL - void c_purple_debug "purple_debug" (PurpleDebugLevel level, const_char_ptr category, const_char_ptr format) - void c_purple_debug_set_enabled "purple_debug_set_enabled" (gboolean debug_enabled) + void c_purple_debug "purple_debug" (PurpleDebugLevel level, char *category, char *format) + void c_purple_debug_set_enabled "purple_debug_set_enabled" (glib.gboolean debug_enabled) diff --git a/libpurple/eventloop.pxd b/libpurple/eventloop.pxd index 4e8f1d3..f48d681 100644 --- a/libpurple/eventloop.pxd +++ b/libpurple/eventloop.pxd @@ -17,19 +17,21 @@ # along with this program. If not, see . # +cimport glib + cdef extern from "libpurple/eventloop.h": ctypedef enum PurpleInputCondition: PURPLE_INPUT_READ PURPLE_INPUT_WRITE - ctypedef void (*PurpleInputFunction) (gpointer, gint, PurpleInputCondition) + ctypedef void (*PurpleInputFunction) (glib.gpointer, glib.gint, PurpleInputCondition) ctypedef struct PurpleEventLoopUiOps: - guint (*timeout_add) (guint interval, GSourceFunc function, gpointer data) - gboolean (*timeout_remove) (guint handle) - guint (*input_add) (int fd, PurpleInputCondition cond, PurpleInputFunction func, gpointer user_data) - gboolean (*input_remove) (guint handle) + glib.guint (*timeout_add) (glib.guint interval, glib.GSourceFunc function, glib.gpointer data) + glib.gboolean (*timeout_remove) (glib.guint handle) + glib.guint (*input_add) (int fd, PurpleInputCondition cond, PurpleInputFunction func, glib.gpointer user_data) + glib.gboolean (*input_remove) (glib.guint handle) int (*input_get_error) (int fd, int *error) - guint (*timeout_add_seconds)(guint interval, GSourceFunc function, gpointer data) + glib.guint (*timeout_add_seconds) (glib.guint interval, glib.GSourceFunc function, glib.gpointer data) void c_purple_eventloop_set_ui_ops "purple_eventloop_set_ui_ops" (PurpleEventLoopUiOps *ops) diff --git a/libpurple/glib.pxd b/libpurple/glib.pxd new file mode 100644 index 0000000..4038da3 --- /dev/null +++ b/libpurple/glib.pxd @@ -0,0 +1,64 @@ +# +# Copyright (c) 2008 INdT - Instituto Nokia de Tecnologia +# +# This file is part of python-purple. +# +# python-purple is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# python-purple is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + +cdef extern from "glib.h": + ctypedef void *gpointer + ctypedef void *gconstpointer + ctypedef int gint + ctypedef unsigned int guint + ctypedef unsigned long gulong + ctypedef gint gboolean + ctypedef gboolean (*GSourceFunc) (gpointer data) + ctypedef unsigned int gsize + ctypedef char gchar + ctypedef unsigned char guchar + + ctypedef struct GHashTable: + pass + + ctypedef struct GMainContext: + pass + + struct _GSList: + gpointer data + _GSList *next + ctypedef _GSList GSList + + struct _GList: + gpointer data + _GList *next + _GList *prev + ctypedef _GList GList + + ctypedef guint GHashFunc (gconstpointer) + ctypedef gboolean GEqualFunc (gconstpointer, gconstpointer) + + gboolean g_str_equal (gconstpointer, gconstpointer) + guint g_str_hash (gconstpointer) + + GHashTable *g_hash_table_new (GHashFunc, GEqualFunc) + void g_hash_table_insert (GHashTable*, gpointer, gpointer) + void g_hash_table_destroy (GHashTable*) + + guint g_timeout_add(guint interval, GSourceFunc function, gpointer data) + guint g_timeout_add_seconds(guint interval, GSourceFunc function, gpointer data) + + gboolean g_main_context_iteration (GMainContext *context, gboolean may_block) + + gboolean g_source_remove(guint tag) diff --git a/libpurple/plugin.pxd b/libpurple/plugin.pxd index 15f9428..5e5343e 100644 --- a/libpurple/plugin.pxd +++ b/libpurple/plugin.pxd @@ -17,6 +17,8 @@ # along with this program. If not, see . # +cimport glib + cdef extern from "libpurple/plugin.h": ctypedef struct PurplePluginInfo: char *id @@ -25,5 +27,5 @@ cdef extern from "libpurple/plugin.h": ctypedef struct PurplePlugin: PurplePluginInfo *info - void c_purple_plugins_add_search_path "purple_plugins_add_search_path" (const_char_ptr path) - GList *c_purple_plugins_get_protocols "purple_plugins_get_protocols" () + void c_purple_plugins_add_search_path "purple_plugins_add_search_path" (char *path) + glib.GList *c_purple_plugins_get_protocols "purple_plugins_get_protocols" () diff --git a/libpurple/pounce.pxd b/libpurple/pounce.pxd index 2fa9d5f..8d63ad2 100644 --- a/libpurple/pounce.pxd +++ b/libpurple/pounce.pxd @@ -17,5 +17,7 @@ # along with this program. If not, see . # +cimport glib + cdef extern from "libpurple/pounce.h": - gboolean c_purple_pounces_load "purple_pounces_load" () + glib.gboolean c_purple_pounces_load "purple_pounces_load" () diff --git a/libpurple/prefs.pxd b/libpurple/prefs.pxd index ea6958f..dc96fce 100644 --- a/libpurple/prefs.pxd +++ b/libpurple/prefs.pxd @@ -17,8 +17,10 @@ # along with this program. If not, see . # +cimport glib + cdef extern from "libpurple/prefs.h": - void c_purple_prefs_add_none "purple_prefs_add_none" (const_char_ptr name) - void c_purple_prefs_rename "purple_prefs_rename" (const_char_ptr oldname, const_char_ptr newname) - const_char_ptr c_purple_prefs_get_string "purple_prefs_get_string" (const_char_ptr name) - gboolean c_purple_prefs_load "purple_prefs_load" () + void c_purple_prefs_add_none "purple_prefs_add_none" (char *name) + void c_purple_prefs_rename "purple_prefs_rename" (char *oldname, char *newname) + char *c_purple_prefs_get_string "purple_prefs_get_string" (char *name) + glib.gboolean c_purple_prefs_load "purple_prefs_load" () diff --git a/libpurple/proxy.pxd b/libpurple/proxy.pxd index 59e7e4b..4644913 100644 --- a/libpurple/proxy.pxd +++ b/libpurple/proxy.pxd @@ -24,5 +24,5 @@ cdef extern from "libpurple/proxy.h": PurpleProxyInfo *c_purple_proxy_info_new "purple_proxy_info_new" () void c_purple_proxy_info_set_type "purple_proxy_info_set_type" (PurpleProxyInfo *info, PurpleProxyType type) - void c_purple_proxy_info_set_host "purple_proxy_info_set_host" (const_char_ptr host) - void c_purple_proxy_info_set_port "purple_proxy_info_set_port" (const_char_ptr port) + void c_purple_proxy_info_set_host "purple_proxy_info_set_host" (char *host) + void c_purple_proxy_info_set_port "purple_proxy_info_set_port" (char *port) diff --git a/libpurple/savedstatuses.pxd b/libpurple/savedstatuses.pxd index d6430e8..7071d2f 100644 --- a/libpurple/savedstatuses.pxd +++ b/libpurple/savedstatuses.pxd @@ -17,9 +17,11 @@ # along with this program. If not, see . # +cimport status + cdef extern from "libpurple/savedstatuses.h": ctypedef struct PurpleSavedStatus: pass - PurpleSavedStatus *c_purple_savedstatus_new "purple_savedstatus_new" (const_char_ptr title, PurpleStatusPrimitive type) + PurpleSavedStatus *c_purple_savedstatus_new "purple_savedstatus_new" (char *title, status.PurpleStatusPrimitive type) void c_purple_savedstatus_activate "purple_savedstatus_activate" (PurpleSavedStatus *saved_status) diff --git a/libpurple/signals.pxd b/libpurple/signals.pxd index 569f654..9f4135c 100644 --- a/libpurple/signals.pxd +++ b/libpurple/signals.pxd @@ -17,11 +17,13 @@ # along with this program. If not, see . # +cimport glib + cdef extern from "libpurple/signals.h": ctypedef void (*PurpleCallback) () - gulong c_purple_signal_connect "purple_signal_connect" (void *instance, - const_char_ptr signal, void *handle, PurpleCallback func, + glib.gulong c_purple_signal_connect "purple_signal_connect" (void *instance, + char *signal, void *handle, PurpleCallback func, void *data) void c_purple_signal_disconnect "purple_signal_disconnect" (void *instance, - const_char_ptr signal, void *handle, PurpleCallback func) + char *signal, void *handle, PurpleCallback func) diff --git a/libpurple/status.pxd b/libpurple/status.pxd index 2713158..1460ffa 100644 --- a/libpurple/status.pxd +++ b/libpurple/status.pxd @@ -17,10 +17,22 @@ # along with this program. If not, see . # +cimport glib + cdef extern from "libpurple/status.h": ctypedef struct PurplePresence: pass - ctypedef int PurpleStatusPrimitive + ctypedef enum PurpleStatusPrimitive: + PURPLE_STATUS_UNSET + PURPLE_STATUS_OFFLINE + PURPLE_STATUS_AVAILABLE + PURPLE_STATUS_UNAVAILABLE + PURPLE_STATUS_INVISIBLE + PURPLE_STATUS_AWAY + PURPLE_STATUS_EXTENDED_AWAY + PURPLE_STATUS_MOBILE + PURPLE_STATUS_TUNE + PURPLE_STATUS_NUN_PRIMITIVE - gboolean c_purple_presence_is_online "purple_presence_is_online" (PurplePresence *presence) + glib.gboolean c_purple_presence_is_online "purple_presence_is_online" (PurplePresence *presence) diff --git a/libpurple/util.pxd b/libpurple/util.pxd index 7132a4d..04bd446 100644 --- a/libpurple/util.pxd +++ b/libpurple/util.pxd @@ -18,5 +18,5 @@ # cdef extern from "libpurple/util.h": - void *c_purple_markup_strip_html "purple_markup_strip_html" (const_char_ptr str) + void *c_purple_markup_strip_html "purple_markup_strip_html" (char *str) void c_purple_util_set_user_dir "purple_util_set_user_dir" (char *dir) diff --git a/purple.pyx b/purple.pyx index 9d87b67..fcce7ff 100644 --- a/purple.pyx +++ b/purple.pyx @@ -17,40 +17,36 @@ # along with this program. If not, see . # -include "glib.pxd" - -cdef extern from *: - ctypedef char* const_char_ptr "const char *" - ctypedef char* const_guchar_ptr "const guchar *" - -cdef extern from "time.h": - ctypedef long int time_t - -include "libpurple/account.pxd" -include "libpurple/buddyicon.pxd" -include "libpurple/blist.pxd" -include "libpurple/connection.pxd" -include "libpurple/conversation.pxd" -include "libpurple/core.pxd" -include "libpurple/debug.pxd" -include "libpurple/eventloop.pxd" -include "libpurple/ft.pxd" -include "libpurple/idle.pxd" -include "libpurple/notify.pxd" -include "libpurple/plugin.pxd" -include "libpurple/pounce.pxd" -include "libpurple/prefs.pxd" -include "libpurple/proxy.pxd" -include "libpurple/request.pxd" -include "libpurple/roomlist.pxd" -include "libpurple/signals.pxd" -include "libpurple/status.pxd" -include "libpurple/savedstatuses.pxd" -include "libpurple/util.pxd" +cdef extern from "libpurple/purple.h": + pass + +cimport glib + +cimport account +cimport buddyicon +cimport blist +cimport connection +cimport conversation +cimport core +cimport debug +cimport eventloop +cimport ft +cimport idle +cimport notify +cimport plugin +cimport pounce +cimport prefs +cimport proxy +cimport request +cimport roomlist +cimport signals +cimport status +cimport savedstatuses +cimport util cdef extern from "c_purple.h": void connect_to_signals_for_demonstration_purposes_only () - guint glib_input_add(gint fd, PurpleInputCondition condition, PurpleInputFunction function, gpointer data) + glib.guint glib_input_add(glib.gint fd, eventloop.PurpleInputCondition condition, eventloop.PurpleInputFunction function, glib.gpointer data) import ecore @@ -64,9 +60,9 @@ global __APP_VERSION__ cdef class Purple: """ Purple class """ - cdef PurpleCoreUiOps c_core_ui_ops - cdef PurpleEventLoopUiOps c_eventloop_ui_ops - cdef GHashTable *c_ui_info + cdef core.PurpleCoreUiOps c_core_ui_ops + cdef eventloop.PurpleEventLoopUiOps c_eventloop_ui_ops + cdef glib.GHashTable *c_ui_info def __cinit__(self, debug_enabled=True, app_name=__APP_NAME__, default_path=__DEFAULT_PATH__): self.c_ui_info = NULL @@ -77,61 +73,62 @@ cdef class Purple: if default_path is not __DEFAULT_PATH__: __DEFAULT_PATH__ = default_path - c_purple_debug_set_enabled(debug_enabled) - c_purple_util_set_user_dir(default_path) - c_purple_plugins_add_search_path(default_path) + debug.c_purple_debug_set_enabled(debug_enabled) + util.c_purple_util_set_user_dir(default_path) + plugin.c_purple_plugins_add_search_path(default_path) # adds glib iteration inside ecore main loop ecore.idler_add(self.__glib_iteration_when_idle) # __cinit__ def __del__(self): - c_purple_core_quit() + core.c_purple_core_quit() # __del__ cdef void __core_ui_ops_ui_prefs_init(self): - c_purple_debug(PURPLE_DEBUG_INFO, "core_ui_ops", "ui_prefs_init\n") - c_purple_prefs_load() + debug.c_purple_debug(debug.PURPLE_DEBUG_INFO, "core_ui_ops", "ui_prefs_init\n") + prefs.c_purple_prefs_load() - c_purple_prefs_add_none("/carman") + prefs.c_purple_prefs_add_none("/carman") # __core_ui_ops_ui_prefs_init cdef void __core_ui_ops_debug_init(self): - c_purple_debug(PURPLE_DEBUG_INFO, "core_ui_ops", "debug_ui_init\n") + debug.c_purple_debug(debug.PURPLE_DEBUG_INFO, "core_ui_ops", "debug_ui_init\n") # __core_ui_ops_debug_init cdef void __core_ui_ops_ui_init(self): - c_purple_debug(PURPLE_DEBUG_INFO, "core_ui_ops", "ui_init\n") + debug.c_purple_debug(debug.PURPLE_DEBUG_INFO, "core_ui_ops", "ui_init\n") # FIXME: Add core ui initialization here # __core_ui_ops_ui_init cdef void __core_ui_ops_quit(self): - c_purple_debug(PURPLE_DEBUG_INFO, "core_ui_ops", "quit\n") - c_purple_accounts_set_ui_ops(NULL) - c_purple_connections_set_ui_ops(NULL) - c_purple_blist_set_ui_ops(NULL) - c_purple_conversations_set_ui_ops(NULL) - c_purple_notify_set_ui_ops(NULL) - c_purple_request_set_ui_ops(NULL) - c_purple_xfers_set_ui_ops(NULL) - c_purple_roomlist_set_ui_ops(NULL) + debug.c_purple_debug(debug.PURPLE_DEBUG_INFO, "core_ui_ops", "quit\n") + + account.c_purple_accounts_set_ui_ops(NULL) + connection.c_purple_connections_set_ui_ops(NULL) + blist.c_purple_blist_set_ui_ops(NULL) + conversation.c_purple_conversations_set_ui_ops(NULL) + notify.c_purple_notify_set_ui_ops(NULL) + request.c_purple_request_set_ui_ops(NULL) + ft.c_purple_xfers_set_ui_ops(NULL) + roomlist.c_purple_roomlist_set_ui_ops(NULL) if self.c_ui_info: - g_hash_table_destroy(self.c_ui_info) + glib.g_hash_table_destroy(self.c_ui_info) # __core_ui_ops_quit - cdef GHashTable *__core_ui_ops_get_ui_info(self): + cdef glib.GHashTable *__core_ui_ops_get_ui_info(self): if self.c_ui_info == NULL: - self.c_ui_info = g_hash_table_new(g_str_hash, g_str_equal) + self.c_ui_info = glib.g_hash_table_new(glib.g_str_hash, glib.g_str_equal) - g_hash_table_insert(self.c_ui_info, "name", __APP_NAME__) - g_hash_table_insert(self.c_ui_info, "version", __APP_VERSION__) + glib.g_hash_table_insert(self.c_ui_info, "name", __APP_NAME__) + glib.g_hash_table_insert(self.c_ui_info, "version", __APP_VERSION__) return self.c_ui_info # __core_ui_ops_get_ui_info def __glib_iteration_when_idle(self): - g_main_context_iteration(NULL, False) + glib.g_main_context_iteration(NULL, False) return True # __glib_iteration_when_idle @@ -142,51 +139,51 @@ cdef class Purple: self.c_core_ui_ops.debug_ui_init = self.__core_ui_ops_debug_init self.c_core_ui_ops.ui_init = self.__core_ui_ops_ui_init self.c_core_ui_ops.quit = self.__core_ui_ops_quit - self.c_core_ui_ops.get_ui_info = self.__core_ui_ops_get_ui_info + self.c_core_ui_ops.get_ui_info = self.__core_ui_ops_get_ui_info - c_purple_core_set_ui_ops(&self.c_core_ui_ops) + core.c_purple_core_set_ui_ops(&self.c_core_ui_ops) # initialize c_eventloop_ui_ops structure - self.c_eventloop_ui_ops.timeout_add = g_timeout_add - self.c_eventloop_ui_ops.timeout_remove = g_source_remove + self.c_eventloop_ui_ops.timeout_add = glib.g_timeout_add + self.c_eventloop_ui_ops.timeout_remove = glib.g_source_remove self.c_eventloop_ui_ops.input_add = glib_input_add - self.c_eventloop_ui_ops.input_remove = g_source_remove + self.c_eventloop_ui_ops.input_remove = glib.g_source_remove self.c_eventloop_ui_ops.input_get_error = NULL - self.c_eventloop_ui_ops.timeout_add_seconds = g_timeout_add_seconds + self.c_eventloop_ui_ops.timeout_add_seconds = glib.g_timeout_add_seconds - c_purple_eventloop_set_ui_ops(&self.c_eventloop_ui_ops) + eventloop.c_purple_eventloop_set_ui_ops(&self.c_eventloop_ui_ops) # initialize purple core - ret = c_purple_core_init(__APP_NAME__) + ret = core.c_purple_core_init(__APP_NAME__) if ret is False: - c_purple_debug(PURPLE_DEBUG_INFO, "main", "Exiting because libpurple initialization failed.\n") + debug.c_purple_debug(debug.PURPLE_DEBUG_INFO, "main", "Exiting because libpurple initialization failed.\n") return False # check if there is another instance of libpurple running - if c_purple_core_ensure_single_instance() == False: - c_purple_debug(PURPLE_DEBUG_INFO, "main", "Exiting because another instance of libpurple is already running.\n") - c_purple_core_quit() + if core.c_purple_core_ensure_single_instance() == False: + debug.c_purple_debug(debug.PURPLE_DEBUG_INFO, "main", "Exiting because another instance of libpurple is already running.\n") + core.c_purple_core_quit() return False # create and load the buddy list - c_purple_set_blist(c_purple_blist_new()) - c_purple_blist_load() + blist.c_purple_set_blist(blist.c_purple_blist_new()) + blist.c_purple_blist_load() # load pounces - c_purple_pounces_load() + pounce.c_purple_pounces_load() return ret # purple_init def get_protocols(self): - cdef GList *iter - cdef PurplePlugin *plugin + cdef glib.GList *iter + cdef plugin.PurplePlugin *__plugin protocols = [] - iter = c_purple_plugins_get_protocols() + iter = plugin.c_purple_plugins_get_protocols() while iter: - plugin = iter.data - if plugin.info and plugin.info.name: - protocols += [(plugin.info.id, plugin.info.name)] + __plugin = iter.data + if __plugin.info and __plugin.info.name: + protocols += [(__plugin.info.id, __plugin.info.name)] iter = iter.next return protocols # get_protocols @@ -197,7 +194,7 @@ cdef class Purple: # connect # Purple -include "account.pxd" -include "buddy.pxd" -include "connection.pxd" -include "conversation.pxd" +include "account.pyx" +include "buddy.pyx" +include "connection.pyx" +include "conversation.pyx" diff --git a/setup.py b/setup.py index 3b2c9e8..bf58b71 100755 --- a/setup.py +++ b/setup.py @@ -1,6 +1,7 @@ #!/usr/bin/env python import sys import os +from glob import glob from setuptools import setup, find_packages, Extension from distutils.sysconfig import get_python_inc @@ -14,16 +15,17 @@ ldflags = Popen(['pkg-config', '--libs', 'purple'], stdout=PIPE).communicate()[0 class pypurple_build_ext(build_ext): def finalize_options(self): build_ext.finalize_options(self) - self.include_dirs.insert(0, 'include') + self.include_dirs.insert(0, 'libpurple') self.pyrex_include_dirs.extend(self.include_dirs) setup( - name = 'python-pypurple', - version = '0.1', - author ='Bruno Abinader', - author_email='bruno.abinader@openbossa.org', - cmdclass = {'build_ext': pypurple_build_ext}, - ext_modules=[Extension('purple', - sources=['c_purple.c','purple.pyx'], - extra_compile_args=cflags, - extra_link_args=ldflags)]) + name = 'python-pypurple', + version = '0.1', + author ='Bruno Abinader', + author_email='bruno.abinader@openbossa.org', + cmdclass = {'build_ext': pypurple_build_ext}, + ext_modules=[Extension('purple', + sources=['c_purple.c','purple.pyx'], + depends=glob('libpurple/*.pxd'), + extra_compile_args=cflags, + extra_link_args=ldflags)]) -- 1.7.9.5