X-Git-Url: http://git.maemo.org/git/?p=python-purple;a=blobdiff_plain;f=plugin.pyx;h=c2b6538be2ba3514ecae52f00072a80cce9a91bf;hp=f9b05d608eb6b3e050dc07bcf54d1ad4bff1dc95;hb=0ac3a2dffcceb3ab436ece980219ab0f476b714c;hpb=b8581ea44a2ad824d5d4f5f829855e1b67f48fa1 diff --git a/plugin.pyx b/plugin.pyx index f9b05d6..c2b6538 100644 --- a/plugin.pyx +++ b/plugin.pyx @@ -24,9 +24,14 @@ cdef class Plugin: cdef prpl.PurplePluginProtocolInfo *c_prpl_info cdef plugin.PurplePluginInfo *c_plugin_info + def __init__(self): + pass + + ''' def __init__(self, id): self.c_plugin = plugin.c_purple_plugins_find_with_id(id) self.c_prpl_info = plugin.c_PURPLE_PLUGIN_PROTOCOL_INFO(self.c_plugin) + ''' def get_name(self): return self.c_plugin.info.name @@ -71,10 +76,7 @@ cdef class Plugin: c_account = NULL if username: - c_account = account.c_purple_accounts_find(username, id) - if c_account == NULL: - # FIXME: Message error or call a error handler - return None + c_account = account.purple_accounts_find(username, id) c_plugin = plugin.c_purple_plugins_find_with_id(id) c_prpl_info = plugin.c_PURPLE_PLUGIN_PROTOCOL_INFO(c_plugin) @@ -86,43 +88,43 @@ cdef class Plugin: while iter: option = iter.data - type = accountopt.c_purple_account_option_get_type(option) - label_name = accountopt.c_purple_account_option_get_text(option) - setting = accountopt.c_purple_account_option_get_setting(option) + type = accountopt.purple_account_option_get_type(option) + label_name = accountopt.purple_account_option_get_text(option) + setting = accountopt.purple_account_option_get_setting(option) sett = str( setting) - label = str( lanel_name) + label = str( label_name) if type == prefs.PURPLE_PREF_STRING: - str_value = accountopt.c_purple_account_option_get_default_string(option) + str_value = accountopt.purple_account_option_get_default_string(option) # Google Talk default domain hackery! if str_value == NULL and label == "Connect server": str_value = "talk.google.com" if c_account != NULL: - str_value = account.c_purple_account_get_string(c_account, setting, str_value) + str_value = account.purple_account_get_string(c_account, setting, str_value) val = str( str_value) elif type == prefs.PURPLE_PREF_INT: - int_value = accountopt.c_purple_account_option_get_default_int(option) + int_value = accountopt.purple_account_option_get_default_int(option) if sett == "port": int_value = int(443) if c_account != NULL: - int_value = account.c_purple_account_get_int(c_account, setting, int_value) + int_value = account.purple_account_get_int(c_account, setting, int_value) val = int(int_value) elif type == prefs.PURPLE_PREF_BOOLEAN: - bool_value = accountopt.c_purple_account_option_get_default_bool(option) + bool_value = accountopt.purple_account_option_get_default_bool(option) if c_account != NULL: - bool_value = account.c_purple_account_get_bool(c_account, setting, bool_value) + bool_value = account.purple_account_get_bool(c_account, setting, bool_value) val = bool(bool_value) elif type == prefs.PURPLE_PREF_STRING_LIST: - str_value = accountopt.c_purple_account_option_get_default_list_value(option) + str_value = accountopt.purple_account_option_get_default_list_value(option) if c_account != NULL: - str_value = account.c_purple_account_get_string(c_account, setting, str_value) + str_value = account.purple_account_get_string(c_account, setting, str_value) val = str( str_value) @@ -132,7 +134,8 @@ cdef class Plugin: return po - def set_options(self, id, username, po): + def set_options(self, acc, po): + #FIXME: account ''' @param id The protocol's id ''' ''' @param username The account's username ''' ''' @param po Dictionary {'setting type': str|int|bool value, ...} ''' @@ -151,12 +154,12 @@ cdef class Plugin: c_account = NULL - c_account = account.c_purple_accounts_find(username, id) + c_account = account.purple_accounts_find(acc[0], acc[1]) if c_account == NULL: # FIXME: Message error or call a error handler return False - c_plugin = plugin.c_purple_plugins_find_with_id(id) + c_plugin = plugin.c_purple_plugins_find_with_id(acc[1]) c_prpl_info = plugin.c_PURPLE_PLUGIN_PROTOCOL_INFO(c_plugin) iter = c_prpl_info.protocol_options @@ -164,35 +167,35 @@ cdef class Plugin: while iter: option = iter.data - type = accountopt.c_purple_account_option_get_type(option) - setting = accountopt.c_purple_account_option_get_setting(option) + type = accountopt.purple_account_option_get_type(option) + setting = accountopt.purple_account_option_get_setting(option) sett = str( setting) iter = iter.next - if not po.has_key(sett): + if not po.has_key(sett) or not po[sett]: continue if type == prefs.PURPLE_PREF_STRING: str_value = po[sett] - account.c_purple_account_set_string(c_account, setting, str_value) + account.purple_account_set_string(c_account, setting, str_value) elif type == prefs.PURPLE_PREF_INT: int_value = int(po[sett]) - account.c_purple_account_set_int(c_account, setting, int_value) + account.purple_account_set_int(c_account, setting, int_value) elif type == prefs.PURPLE_PREF_BOOLEAN: bool_value = bool(po[sett]) - account.c_purple_account_set_bool(c_account, setting, bool_value) + account.purple_account_set_bool(c_account, setting, bool_value) elif type == prefs.PURPLE_PREF_STRING_LIST: str_value = po[sett] - account.c_purple_account_set_string(c_account, setting, str_value) + account.purple_account_set_string(c_account, setting, str_value) return True