From d5b85c24f1ac2d3fb582e79c995396c4043e7763 Mon Sep 17 00:00:00 2001 From: Ragner Magalhaes Date: Tue, 2 Dec 2008 21:12:23 +0000 Subject: [PATCH 1/1] Removind Account's dependency and adding _get_structure() function Removind Account's dependency and fixing get function Signed-off-by: Ragner Magalhaes Acked-by: Bruno Abinader Acked-by: Ricardo Guimaraes git-svn-id: https://garage.maemo.org/svn/carman/branches/carman-0.7-beta2/python-purple@1423 596f6dd7-e928-0410-a184-9e12fd12cf7e --- libpurple/plugin.pxd | 4 ++-- protocol.pyx | 38 ++++++++++++++++++++++++++------------ 2 files changed, 28 insertions(+), 14 deletions(-) diff --git a/libpurple/plugin.pxd b/libpurple/plugin.pxd index 101fe26..abcd0d2 100644 --- a/libpurple/plugin.pxd +++ b/libpurple/plugin.pxd @@ -48,7 +48,7 @@ cdef extern from "libpurple/plugin.h": glib.GList *c_purple_plugins_get_protocols "purple_plugins_get_protocols" () PurplePlugin *c_purple_plugins_find_with_name "purple_plugins_find_with_name" \ (char *name) - PurplePlugin *c_purple_plugins_find_with_id "purple_plugins_find_with_id" \ - (char *id) + PurplePlugin *purple_plugins_find_with_id(char *id) + char *purple_plugin_get_name(PurplePlugin *plugin) diff --git a/protocol.pyx b/protocol.pyx index b482e6e..ed335e2 100644 --- a/protocol.pyx +++ b/protocol.pyx @@ -25,18 +25,32 @@ cdef class Protocol: @param protocol_id """ - def __init__(self, account, protocol_id): - self.__account = account - self.__protocol_id = protocol_id + def __init__(self, id): + self.__id = id - cdef account.PurpleAccount *__account_get_structure(self): - return account.purple_accounts_find(self.__account.username, \ - self.__account.protocol_id) + if self._get_structure() != NULL: + self.__exists = True + else: + self.__exists = False - def __get_protocol_id(self): - return self.__protocol_id.protocol_id - protocol_id = property(__get_protocol_id) + cdef plugin.PurplePlugin *_get_structure(self): + return plugin.purple_plugins_find_with_id(self.__protocol_id) - def _set_protocol_id(self, protocol_id): - account.purple_account_set_protocol_id( \ - self.__account_get_structure(), protocol_id) + def __get_exists(self): + return self.__exists + exists = property(__get_exists) + + def __get_id(self): + return self.__id + id = property(__get_id) + + def __get_name(self): + cdef char *name = NULL + if self.__exists: + name = plugin.purple_plugin_get_name(self._get_structure()) + if name != NULL: + return name + else: + return None + return None + name = property(__get_name) -- 1.7.9.5