X-Git-Url: http://git.maemo.org/git/?p=python-purple;a=blobdiff_plain;f=core%2Faccount.pxd;h=052b03517b0b499968ffaea2b6af8dd0a3ae7a6e;hp=03b8333b4050c27fc5ea473ffd8291f5201bc844;hb=d3b9bafd3ca2798264681a5694cb06917f80d70f;hpb=e23f0f20a293c815facf83cd657d73e716d4818e diff --git a/core/account.pxd b/core/account.pxd index 03b8333..052b035 100644 --- a/core/account.pxd +++ b/core/account.pxd @@ -1,21 +1,100 @@ -ctypedef enum gboolean: - FALSE, TRUE +# +# Copyright (c) 2008 INdT - Instituto Nokia de Tecnologia +# +# This file is part of python-purple. +# +# python-purple is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# python-purple is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + +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) + + +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 PurpleAccount *purple_account_new(char *username, char *protocol_id) +cdef class Account: + """ Account class """ + cdef PurpleAccount *__account + cdef PurpleSavedStatus *__sstatus - cdef void purple_account_set_password(PurpleAccount *account, - char *password) + def __cinit__(self, const_char_ptr username, const_char_ptr protocol_id): + self.__account = c_purple_account_new(username, protocol_id) - cdef void purple_account_set_enabled(PurpleAccount *account, char *ui, - gboolean value) + def set_password(self, password): + c_purple_account_set_password(self.__account, password) -cdef extern from "libpurple/connection.h": - ctypedef struct PurpleConnection + def set_enabled(self, ui, value): + c_purple_account_set_enabled(self.__account, ui, value) - cdef PurpleAccount *purple_connection_get_account(PurpleConnection *gc) + def get_acc_username(self): + if self.__account: + return c_purple_account_get_username(self.__account) + def get_password(self): + if self.__account: + return c_purple_account_get_password(self.__account) + def set_status(self): + self.__sstatus = c_purple_savedstatus_new(NULL, StatusPrimitive().STATUS_AVAILABLE) + c_purple_savedstatus_activate(self.__sstatus)