Modified account functions.
[python-purple] / purple.pyx
index b3ab8b1..00ce7fc 100644 (file)
@@ -62,7 +62,11 @@ cdef class Purple:
     @parm app_name: Set application name.
     @parm default_path: Full path for libpurple user files.
     """
+
+    cdef object accounts
+
     def __init__(self, debug_enabled=True, app_name=__APP_NAME__, default_path=__DEFAULT_PATH__):
+        self.accounts = {}
         if app_name is not __APP_NAME__:
             __APP_NAME__ = app_name
 
@@ -285,6 +289,41 @@ cdef class Purple:
         acc = Account(username, protocol_id)
         return acc
 
+    def accounts_init(self):
+        cdef glib.GList *iter
+        cdef account.PurpleAccount *acc
+        iter = account.c_purple_accounts_get_all()
+        while iter:
+            acc = <account.PurpleAccount *> iter.data
+            if <account.PurpleAccount *>acc:
+                self.account_add(acc.username.split("/")[0], acc.protocol_id, "172.18.216.211", 8080)
+            iter = iter.next
+
+    def account_add(self, username, protocol_id, host, port):
+        if not self.account_verify(username):
+            acc = purple.Account(username, protocol_id)
+            self.accounts_add_dict(username, acc)
+            if not account.c_purple_accounts_find(username, protocol_id):
+                acc.proxy.set_type(purple.ProxyInfoType().HTTP)
+                acc.proxy.set_host(host)
+                acc.proxy.set_port(port)
+                acc.save_into_xml()
+        else:
+            print "Exists account"
+
+    def account_verify(self, acc_username):
+        if self.accounts:
+            for username in self.accounts.keys():
+                if acc_username == username:
+                    return self.accounts[username]
+        return None
+
+    def accounts_add_dict(self, username, acc):
+        self.accounts[username] = acc
+
+    def accounts_get_dict(self):
+        return self.accounts
+
 include "proxy.pyx"
 include "account.pyx"
 include "buddy.pyx"