# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
-class ProxyType:
- def __init__(self):
- self.PROXY_USE_GLOBAL = -1
- self.PROXY_NONE = 0
- self.PROXY_HTTP = 1
- self.PROXY_SOCKS4 = 2
- self.PROXY_SOCKS5 = 3
- self.PROXY_USE_ENVVAR = 4
-
-
-class StatusPrimitive:
- def __init__(self):
- self.STAUTS_UNSET = 0
- self.STATUS_OFFLINE = 1
- self.STATUS_AVAILABLE = 2
- self.STATUS_UNAVAILABLE = 3
- self.STATUS_INVISIBLE = 4
- self.STATUS_AWAY = 5
- self.STATUS_EXTENDED_AWAY = 6
- self.STATUS_MOBILE = 7
- self.STATUS_TUNE = 8
- self.STATUS_NUN_PRIMITIVE = 9
+cimport purple
+
+from protocol import Protocol
cdef class Account:
- """ Account class """
- cdef PurpleAccount *__account
- cdef PurpleSavedStatus *__sstatus
+ """
+ Account class
+ @param username
+ @param protocol_id
+ """
+
+ def __init__(self, username, protocol_id):
+ self.__username = username
+ self.__protocol = Protocol(self, protocol_id)
+
+ if self._get_structure() == NULL:
+ self.__exists = False
+ else:
+ self.__exists = True
+
+ cdef account.PurpleAccount *_get_structure(self):
+ return account.purple_accounts_find(self.username, \
+ self.protocol_id)
+
+ def __get_exists(self):
+ return self.__exists
+ exists = property(__get_exists)
+
+ def __get_username(self):
+ cdef char *username = NULL
+ if self.__exists:
+ username = <char *> account.purple_account_get_username( \
+ self._get_structure())
+ if username:
+ return username
+ else:
+ return None
+ else:
+ return self.__username
+ username = property(__get_username)
+
+ def __get_protocol_id(self):
+ cdef char *protocol_id = NULL
+ if self.__exists:
+ protocol_id = <char *> account.purple_account_get_protocol_id( \
+ self._get_structure())
+ if protocol_id:
+ return protocol_id
+ else:
+ return None
+ else:
+ return self.protocol_id
+ protocol_id = property(__get_protocol_id)
- def __cinit__(self, const_char_ptr username, const_char_ptr protocol_id):
- self.__account = c_purple_account_new(username, protocol_id)
+ def __get_password(self):
+ cdef char *password = NULL
+ if self.__exists:
+ password = <char *> account.purple_account_get_password( \
+ self._get_structure())
+ if password:
+ return password
+ else:
+ return None
+ else:
+ return None
+ def __set_password(self, password):
+ if self.__exists:
+ account.purple_account_set_password(self._get_structure(), \
+ password)
+ return True
+ else:
+ return False
+ password = property(__get_password, __set_password)
- def set_password(self, password):
- c_purple_account_set_password(self.__account, password)
+ def __get_alias(self):
+ cdef char *alias = NULL
+ if self.__exists:
+ alias = <char *> account.purple_account_get_alias(self._get_structure())
+ if alias:
+ return alias
+ else:
+ return None
+ else:
+ return None
+ def __set_alias(self, alias):
+ if self.__exists:
+ account.purple_account_set_alias(self._get_structure(), \
+ alias)
+ return True
+ else:
+ return False
+ alias = property(__get_alias, __set_alias)
- def set_enabled(self, ui, value):
- c_purple_account_set_enabled(self.__account, ui, value)
+ def __get_user_info(self):
+ cdef char *user_info = NULL
+ if self.__exists:
+ user_info = <char *> account.purple_account_get_user_info(self._get_structure())
+ if user_info:
+ return user_info
+ else:
+ return None
+ else:
+ return None
+ def __set_user_info(self, user_info):
+ if self.__exists:
+ account.purple_account_set_user_info(self._get_structure(), \
+ user_info)
+ return True
+ else:
+ return False
+ user_info = property(__get_user_info, __set_user_info)
- def get_acc_username(self):
- if self.__account:
- return c_purple_account_get_username(self.__account)
+ def __get_remember_password(self):
+ if self.__exists:
+ return account.purple_account_get_remember_password( \
+ self._get_structure())
+ else:
+ return None
+ def __set_remember_password(self, remember_password):
+ if self.__exists:
+ account.purple_account_set_remember_password( \
+ self._get_structure(), remember_password)
+ return True
+ else:
+ return False
+ remember_password = property(__get_remember_password, \
+ __set_remember_password)
- def get_password(self):
- if self.__account:
- return c_purple_account_get_password(self.__account)
+ def set_username(self, username):
+ if self.__exists:
+ account.purple_account_set_username(self._get_structure(), \
+ username)
+ return True
+ else:
+ return False
- def set_status(self):
- self.__sstatus = c_purple_savedstatus_new(NULL, StatusPrimitive().STATUS_AVAILABLE)
- c_purple_savedstatus_activate(self.__sstatus)
+ def set_protocol_id(self, protocol_id):
+ if self.__exists:
+ self.__protocol._set_protocol_id(protocol_id)
+ return True
+ else:
+ return False
+ def new(self):
+ if self.__exists:
+ return False
+ else:
+ account.purple_account_new(self.username, self.protocol_id)
+ self.__exists = True
+ return True