X-Git-Url: http://git.maemo.org/git/?p=python-purple;a=blobdiff_plain;f=purple.pyx;h=be7fbbcc954afdcca607afea3a5aea4cd79e82e9;hp=0c4be9a33a222fb0a987b13a548725296d7eb784;hb=1b94ca83c6753be4e2f27b3a62a4ecf454d82529;hpb=3ac088be4b86dfb87718586f7a095f88b566ce42 diff --git a/purple.pyx b/purple.pyx index 0c4be9a..be7fbbc 100644 --- a/purple.pyx +++ b/purple.pyx @@ -24,6 +24,8 @@ cdef extern from "c_purple.h": import ecore +include "plugin.pyx" + __DEFAULT_PATH__ = "/tmp" __APP_NAME__ = "carman-purple-python" __APP_VERSION__ = "0.1" @@ -61,6 +63,8 @@ cdef class Purple: @parm default_path: Full path for libpurple user files. """ + cdef Plugins plugins + def __init__(self, debug_enabled=True, app_name=__APP_NAME__, default_path=__DEFAULT_PATH__): if app_name is not __APP_NAME__: __APP_NAME__ = app_name @@ -71,9 +75,10 @@ cdef class Purple: 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) + self.plugins = Plugins() # adds glib iteration inside ecore main loop - ecore.idler_add(self.__glib_iteration_when_idle) + ecore.timer_add(0.001, self.__glib_iteration_when_idle) def __del__(self): core.c_purple_core_quit() @@ -246,16 +251,7 @@ cdef class Purple: return ret def get_protocols(self): - cdef glib.GList *iter - cdef plugin.PurplePlugin *__plugin - 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)] - iter = iter.next - return protocols + return self.plugins.get_protocols() def connect(self): conn = Connection()