X-Git-Url: http://git.maemo.org/git/?p=python-purple;a=blobdiff_plain;f=purple.pyx;h=9d87b675b51ed326da702022d263621d3d0b1a39;hp=cde5123172b388f442063d0b2a2587287d77aaa2;hb=f159e4e85c40eec62070f297af3fd54646dba4b0;hpb=3b6e95efe2d3101588da8c1fdbbf18c1ce84cfe3 diff --git a/purple.pyx b/purple.pyx index cde5123..9d87b67 100644 --- a/purple.pyx +++ b/purple.pyx @@ -19,83 +19,42 @@ include "glib.pxd" -import ecore - 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 -cdef extern from "libpurple/blist.h": - ctypedef struct PurpleBuddyList: - pass - - void c_purple_set_blist "purple_set_blist" (PurpleBuddyList *list) - void c_purple_blist_load "purple_blist_load" () - PurpleBuddyList* c_purple_blist_new "purple_blist_new" () - -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) () - - gboolean c_purple_core_init "purple_core_init" (const_char_ptr 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" () - -cdef extern from "libpurple/debug.h": - ctypedef enum PurpleDebugLevel: - PURPLE_DEBUG_ALL - PURPLE_DEBUG_MISC - PURPLE_DEBUG_INFO - PURPLE_DEBUG_WARNING - 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) - -cdef extern from "libpurple/eventloop.h": - ctypedef enum PurpleInputCondition: - PURPLE_INPUT_READ - PURPLE_INPUT_WRITE - - ctypedef void (*PurpleInputFunction) (gpointer , 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) - int (*input_get_error) (int fd, int *error) - guint (*timeout_add_seconds)(guint interval, GSourceFunc function, gpointer data) - - void c_purple_eventloop_set_ui_ops "purple_eventloop_set_ui_ops" (PurpleEventLoopUiOps *ops) - -cdef extern from "libpurple/plugin.h": - void c_purple_plugins_add_search_path "purple_plugins_add_search_path" (const_char_ptr path) - -cdef extern from "libpurple/pounce.h": - gboolean c_purple_pounces_load "purple_pounces_load" () - -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" () - -cdef extern from "libpurple/util.h": - void c_purple_util_set_user_dir "purple_util_set_user_dir" (char *dir) +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 "c_purple.h": - guint glib_input_add(gint fd, PurpleInputCondition condition, PurpleInputFunction function, gpointer data) + void connect_to_signals_for_demonstration_purposes_only () + guint glib_input_add(gint fd, PurpleInputCondition condition, PurpleInputFunction function, gpointer data) + +import ecore -__DEFAULT_PATH__ = "/home/user/MyDocs/Carman" +__DEFAULT_PATH__ = "/tmp" __APP_NAME__ = "carman-purple-python" __APP_VERSION__ = "0.1" @@ -135,7 +94,6 @@ cdef class Purple: c_purple_prefs_load() c_purple_prefs_add_none("/carman") - c_purple_prefs_add_none("/carman/plugins") # __core_ui_ops_ui_prefs_init cdef void __core_ui_ops_debug_init(self): @@ -144,10 +102,23 @@ cdef class Purple: cdef void __core_ui_ops_ui_init(self): c_purple_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) + + if self.c_ui_info: + g_hash_table_destroy(self.c_ui_info) # __core_ui_ops_quit cdef GHashTable *__core_ui_ops_get_ui_info(self): @@ -205,12 +176,28 @@ cdef class Purple: c_purple_pounces_load() return ret - # core_init - + # purple_init + + def get_protocols(self): + cdef GList *iter + cdef PurplePlugin *plugin + protocols = [] + iter = c_purple_plugins_get_protocols() + while iter: + plugin = iter.data + if plugin.info and plugin.info.name: + protocols += [(plugin.info.id, plugin.info.name)] + iter = iter.next + return protocols + # get_protocols + + def connect(self): + conn = Connection() + conn.connect() + # connect # Purple -include "core/account.pxd" -include "core/buddy.pxd" -#include "core/connection.pxd" -#include "core/core.pxd" -#include "core/idle.pxd" +include "account.pxd" +include "buddy.pxd" +include "connection.pxd" +include "conversation.pxd"