diff options
author | mathieui <mathieui@mathieui.net> | 2016-09-30 21:01:05 +0200 |
---|---|---|
committer | mathieui <mathieui@mathieui.net> | 2016-10-02 17:12:47 +0200 |
commit | 96d1c26f90ce0ecd3651a9990e72e7d55e298328 (patch) | |
tree | 5ba4268ee568a8902f56eae0892d2fb411b49d31 | |
parent | 46a90749f839c3d64aa05458cef825f56e9c702d (diff) | |
download | slixmpp-96d1c26f90ce0ecd3651a9990e72e7d55e298328.tar.gz slixmpp-96d1c26f90ce0ecd3651a9990e72e7d55e298328.tar.bz2 slixmpp-96d1c26f90ce0ecd3651a9990e72e7d55e298328.tar.xz slixmpp-96d1c26f90ce0ecd3651a9990e72e7d55e298328.zip |
Add a fallback if the lang we want is not available
Previously, trying to get a text node with a lang which is different
from the one we specified would return nothing, which means e.g. a
message would be ignored because its body is of lang 'fr' when we setup
slixmpp to prefer 'en'. We want to return something when there is an
available, valid content in a different language.
-rw-r--r-- | slixmpp/xmlstream/stanzabase.py | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/slixmpp/xmlstream/stanzabase.py b/slixmpp/xmlstream/stanzabase.py index 8023831b..e7ffddc8 100644 --- a/slixmpp/xmlstream/stanzabase.py +++ b/slixmpp/xmlstream/stanzabase.py @@ -907,11 +907,17 @@ class ElementBase(object): stanzas = self.xml.findall(name) if not stanzas: return default + result = None for stanza in stanzas: if stanza.attrib.get('{%s}lang' % XML_NS, default_lang) == lang: if stanza.text is None: return default - return stanza.text + result = stanza.text + break + if stanza.text: + result = stanza.text + if result is not None: + return result return default def _get_all_sub_text(self, name, default='', lang=None): |