# HG changeset patch # User souliane # Date 1378407832 -7200 # Node ID 99eee75ec1b7a06d672bbeec09601abbc39412ca # Parent 6821fc06a324b3fce5ac65b687a2ebe832dab407 core: better handling of profile_key and don't write the param file anymore - new error ProfileNotSetError and some methods use the default @NONE@ instead of @DEFAULT@ - do not output the .sat/param file anymore, it is not needed and created confusion - plugin XEP-0054: remove an error message at startup diff -r 6821fc06a324 -r 99eee75ec1b7 frontends/src/quick_frontend/quick_chat_list.py --- a/frontends/src/quick_frontend/quick_chat_list.py Thu Sep 05 20:57:00 2013 +0200 +++ b/frontends/src/quick_frontend/quick_chat_list.py Thu Sep 05 21:03:52 2013 +0200 @@ -28,9 +28,9 @@ dict.__init__(self) self.host = host - def __getitem__(self,to_jid): - target=JID(to_jid) - if not self.has_key(target.short): + def __getitem__(self, to_jid): + target = JID(to_jid) + if not target.short in self: #we have to create the chat win self[target.short] = self.createChat(target) return dict.__getitem__(self, target.short) diff -r 6821fc06a324 -r 99eee75ec1b7 src/core/exceptions.py --- a/src/core/exceptions.py Thu Sep 05 20:57:00 2013 +0200 +++ b/src/core/exceptions.py Thu Sep 05 21:03:52 2013 +0200 @@ -26,6 +26,13 @@ pass +class ProfileNotSetError(Exception): + """ + This error raises when no profile has been set (value @NONE@ is found, but it should have been replaced) + """ + pass + + class NotConnectedProfileError(Exception): pass diff -r 6821fc06a324 -r 99eee75ec1b7 src/memory/memory.py --- a/src/memory/memory.py Thu Sep 05 20:57:00 2013 +0200 +++ b/src/memory/memory.py Thu Sep 05 21:03:52 2013 +0200 @@ -195,6 +195,8 @@ info(_('No profile exist yet')) return "" return default # FIXME: temporary, must use real default value, and fallback to first one if it doesn't exists + elif profile_key == '@NONE@': + raise exceptions.ProfileNotSetError if not self.storage.hasProfile(profile_key): info(_('Trying to access an unknown profile')) return "" @@ -275,11 +277,11 @@ return "true" if result else "false" return result - def getStringParamA(self, name, category, attr="value", profile_key="@DEFAULT@"): + def getStringParamA(self, name, category, attr="value", profile_key="@NONE@"): """ Same as getParamA but for bridge: convert non string value to string """ return self.__type_to_string(self.getParamA(name, category, attr, profile_key)) - def getParamA(self, name, category, attr="value", profile_key="@DEFAULT@"): + def getParamA(self, name, category, attr="value", profile_key="@NONE@"): """Helper method to get a specific attribute @param name: name of the parameter @param category: category of the parameter @@ -312,12 +314,12 @@ value = self.__getParam(profile, category, name) return self.__getAttr(node[1], attr, value) - def asyncGetStringParamA(self, name, category, attr="value", profile_key="@DEFAULT@"): + def asyncGetStringParamA(self, name, category, attr="value", profile_key="@NONE@"): d = self.asyncGetParamA(name, category, attr, profile_key) d.addCallback(self.__type_to_string) return d - def asyncGetParamA(self, name, category, attr="value", profile_key="@DEFAULT@"): + def asyncGetParamA(self, name, category, attr="value", profile_key="@NONE@"): """Helper method to get a specific attribute @param name: name of the parameter @param category: category of the parameter @@ -678,7 +680,8 @@ param_file_xml = os.path.expanduser(self.getConfig('', 'local_dir') + self.host.get_const('savefile_param_xml')) - self.params.save_xml(param_file_xml) + # TODO: check if this method is still needed + #self.params.save_xml(param_file_xml) debug(_("params saved")) def getProfilesList(self): @@ -894,16 +897,16 @@ return self.subscriptions[profile] - def getStringParamA(self, name, category, attr="value", profile_key='@DEFAULT@'): + def getStringParamA(self, name, category, attr="value", profile_key='@NONE@'): return self.params.getStringParamA(name, category, attr, profile_key) - def getParamA(self, name, category, attr="value", profile_key='@DEFAULT@'): + def getParamA(self, name, category, attr="value", profile_key='@NONE@'): return self.params.getParamA(name, category, attr, profile_key) - def asyncGetParamA(self, name, category, attr="value", profile_key='@DEFAULT@'): + def asyncGetParamA(self, name, category, attr="value", profile_key='@NONE@'): return self.params.asyncGetParamA(name, category, attr, profile_key) - def asyncGetStringParamA(self, name, category, attr="value", profile_key='@DEFAULT@'): + def asyncGetStringParamA(self, name, category, attr="value", profile_key='@NONE@'): return self.params.asyncGetStringParamA(name, category, attr, profile_key) def getParamsUI(self, security_limit, profile_key): diff -r 6821fc06a324 -r 99eee75ec1b7 src/plugins/plugin_xep_0054.py --- a/src/plugins/plugin_xep_0054.py Thu Sep 05 20:57:00 2013 +0200 +++ b/src/plugins/plugin_xep_0054.py Thu Sep 05 21:03:52 2013 +0200 @@ -199,7 +199,8 @@ def vcard_err(self, failure, profile): """Called when something is wrong with registration""" - error(_("Can't find VCard of %s") % failure.value.stanza['from']) + if failure.value.stanza.hasAttribute("from"): + error(_("Can't find VCard of %s") % failure.value.stanza['from']) self.host.bridge.actionResult("SUPPRESS", failure.value.stanza['id'], {}, profile) # FIXME: maybe an error message would be better def getCard(self, target_s, profile_key='@DEFAULT@'):