# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
+cdef extern from "glib.h":
+ ctypedef int gboolean
+
cdef extern from "libpurple/account.h":
- ctypedef struct PurpleAccount
+ cdef struct _PurpleAccount
+ ctypedef _PurpleAccount PurpleAccount
+
+ PurpleAccount *c_purple_account_new "purple_account_new" (const_char_ptr username, const_char_ptr protocol_id)
+ void c_purple_account_set_password "purple_account_set_password" (PurpleAccount *account, const_char_ptr password)
+ const_char_ptr c_purple_account_get_password "purple_account_get_password" (PurpleAccount *account)
+ void c_purple_account_set_enabled "purple_account_set_enabled" (PurpleAccount *account, const_char_ptr ui, gboolean value)
+ const_char_ptr c_purple_account_get_username "purple_account_get_username" (PurpleAccount *account)
+
+cdef extern from "libpurple/status.h":
+ ctypedef int PurpleStatusPrimitive
+
+ cdef struct _PurpleSavedStatus
+ ctypedef _PurpleSavedStatus PurpleSavedStatus
+
+ PurpleSavedStatus *c_purple_savedstatus_new "purple_savedstatus_new" (const_char_ptr title, PurpleStatusPrimitive type)
+ void c_purple_savedstatus_activate "purple_savedstatus_activate" (PurpleSavedStatus *saved_status)
+
+cdef extern from "libpurple/proxy.h":
+ cdef struct PurpleProxyInfo
+
+ ctypedef int PurpleProxyType
+ PurpleProxyInfo *purple_proxy_info_new()
+ void c_purple_proxy_info_set_type "purple_proxy_info_set_type" (PurpleProxyInfo *info, PurpleProxyType type)
+ void c_purple_proxy_info_set_host "purple_proxy_info_set_host" (const_char_ptr host)
+ void c_purple_proxy_info_set_port "purple_proxy_info_set_port" (const_char_ptr port)
- cdef PurpleAccount *c_purple_account_new "purple_account_new" (const_char_ptr username, const_char_ptr protocol_id)
- cdef void c_purple_account_set_username "purple_account_set_username" (PurpleAccount *account, const_char_ptr username)
- cdef void c_purple_account_set_password "purple_account_set_password" (PurpleAccount *account, const_char_ptr password)
- cdef void c_purple_account_set_enabled "purple_account_set_enabled" (PurpleAccount *account, const_char_ptr ui, gboolean value)
-class Account(object):
+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
+
+cdef class Account:
""" Account class """
+ cdef PurpleAccount *__account
+ cdef PurpleSavedStatus *__sstatus
+
+ def __cinit__(self, const_char_ptr username, const_char_ptr protocol_id):
+ self.__account = c_purple_account_new(username, protocol_id)
+
+ def set_password(self, password):
+ c_purple_account_set_password(self.__account, password)
+
+ def set_enabled(self, ui, value):
+ c_purple_account_set_enabled(self.__account, ui, value)
+
+ def get_acc_username(self):
+ if self.__account:
+ return c_purple_account_get_username(self.__account)
- def __init__(self, username, protocol_id):
- cdef PurpleAccount *acc = c_purple_account_new(username, protocol_id)
- self.__acc = <object> acc
- acc = <PurpleAccount *> self.__acc
+ def get_password(self):
+ if self.__account:
+ return c_purple_account_get_password(self.__account)
- """
- def purple_account_set_password(self, account, password):
- c_purple_account_set_password(account, password)
+ def set_status(self):
+ self.__sstatus = c_purple_savedstatus_new(NULL, StatusPrimitive().STATUS_AVAILABLE)
+ c_purple_savedstatus_activate(self.__sstatus)
- def purple_account_set_enabled(self, account, ui, value):
- c_purple_account_set_enabled(account, ui, value)
- """