Removind Account's dependency and adding _get_structure() function
authorRagner Magalhaes <ragner.magalhaes@openbossa.org>
Tue, 2 Dec 2008 21:12:23 +0000 (21:12 +0000)
committerAnderson Briglia <anderson.briglia@openbossa.org>
Sat, 28 Feb 2009 21:11:19 +0000 (17:11 -0400)
Removind Account's dependency and fixing get function

Signed-off-by: Ragner Magalhaes <ragner.magalhaes@indt.org.br>
Acked-by: Bruno Abinader <bruno.abinader@indt.org.br>
Acked-by: Ricardo Guimaraes <ricardo.guimaraes@indt.org.br>

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
protocol.pyx

index 101fe26..abcd0d2 100644 (file)
@@ -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)
 
 
index b482e6e..ed335e2 100644 (file)
@@ -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 = <char *> plugin.purple_plugin_get_name(self._get_structure())
+            if name != NULL:
+                return name
+            else:
+                return None
+        return None
+    name = property(__get_name)