# HG changeset patch # User Goffi # Date 1381858114 -7200 # Node ID 69a8bfd266a5f0191117030a19ff9104bb23028c # Parent b6c22d9f593ae4e492b94c6b4a304324fa92f2ef core, plugins: fixed bad use of children instead of elements() for domish.Element instances. diff -r b6c22d9f593a -r 69a8bfd266a5 src/plugins/plugin_misc_groupblog.py --- a/src/plugins/plugin_misc_groupblog.py Mon Oct 07 13:09:57 2013 +0200 +++ b/src/plugins/plugin_misc_groupblog.py Tue Oct 15 19:28:34 2013 +0200 @@ -212,7 +212,7 @@ def _parseAccessData(self, microblog_data, item): P = self.host.plugins["XEP-0060"] - form_elts = filter(lambda elt: elt.name == "x", item.children) + form_elts = [child for child in item.elements() if child.name == "x"] for form_elt in form_elts: form = data_form.Form.fromElement(form_elt) diff -r b6c22d9f593a -r 69a8bfd266a5 src/plugins/plugin_misc_quiz.py --- a/src/plugins/plugin_misc_quiz.py Mon Oct 07 13:09:57 2013 +0200 +++ b/src/plugins/plugin_misc_quiz.py Tue Oct 15 19:28:34 2013 +0200 @@ -146,7 +146,7 @@ @param answer_result_elt: answer result element @return: (player, good_answer, score)""" score = {} - for score_elt in answer_result_elt.children: + for score_elt in answer_result_elt.elements(): score[score_elt['player']] = int(score_elt['score']) return (answer_result_elt['player'], answer_result_elt['good_answer'] == str(True), score) diff -r b6c22d9f593a -r 69a8bfd266a5 src/plugins/plugin_xep_0020.py --- a/src/plugins/plugin_xep_0020.py Mon Oct 07 13:09:57 2013 +0200 +++ b/src/plugins/plugin_xep_0020.py Tue Oct 15 19:28:34 2013 +0200 @@ -55,7 +55,7 @@ """Check element's children to find feature elements @param elt: domish.Element @return: feature elements""" - return filter(lambda elt: elt.name == 'feature', elt.elements()) + return [child for child in elt.elements() if child.name == 'feature'] def getChoosedOptions(self, elt): """Return choosed feature for feature element diff -r b6c22d9f593a -r 69a8bfd266a5 src/plugins/plugin_xep_0085.py --- a/src/plugins/plugin_xep_0085.py Mon Oct 07 13:09:57 2013 +0200 +++ b/src/plugins/plugin_xep_0085.py Tue Oct 15 19:28:34 2013 +0200 @@ -27,7 +27,7 @@ except ImportError: from wokkel.subprotocols import XMPPHandler from threading import Timer -from twisted.words.xish.domish import generateElementsNamed +from twisted.words.xish import domish NS_XMPP_CLIENT = "jabber:client" NS_CHAT_STATES = "http://jabber.org/protocol/chatstates" @@ -143,10 +143,10 @@ return True try: - generateElementsNamed(message.children, name="body").next() + domish.generateElementsNamed(message.elements(), name="body").next() from_jid = JID(message.getAttribute("from")) try: - generateElementsNamed(message.children, name="active").next() + domish.generateElementsNamed(message.elements(), name="active").next() # contact enabled Chat State Notifications self.updateEntityData(from_jid, True, profile) # init to send following "composing" state @@ -158,7 +158,7 @@ except StopIteration: pass - state_list = [child.name for child in message.children if + state_list = [child.name for child in message.elements() if message.getAttribute("type") in MESSAGE_TYPES and child.name in CHAT_STATES and child.defaultUri == NS_CHAT_STATES] @@ -178,7 +178,7 @@ return True try: # message with a body always mean active state - generateElementsNamed(message.children, name="body").next() + domish.generateElementsNamed(message.elements(), name="body").next() message.addElement('active', NS_CHAT_STATES) # launch the chat state machine (init the timer) self.__chatStateActive(to_jid, mess_data["type"], profile) diff -r b6c22d9f593a -r 69a8bfd266a5 src/plugins/plugin_xep_0163.py --- a/src/plugins/plugin_xep_0163.py Mon Oct 07 13:09:57 2013 +0200 +++ b/src/plugins/plugin_xep_0163.py Tue Oct 15 19:28:34 2013 +0200 @@ -104,15 +104,15 @@ debug(_("No item found")) return try: - mood_elem = filter(lambda x: x.name == "mood", itemsEvent.items[0].children)[0] - except KeyError: + mood_elt = [child for child in itemsEvent.items[0].elements() if child.name == "mood"][0] + except IndexError: error(_("Can't find mood element in mood event")) return - _mood = Mood.fromXml(mood_elem) - if not _mood: + mood = Mood.fromXml(mood_elt) + if not mood: debug(_("No mood found")) return - self.host.bridge.personalEvent(itemsEvent.sender.full(), "MOOD", {"mood": _mood.value or "", "text": _mood.text or ""}, profile) + self.host.bridge.personalEvent(itemsEvent.sender.full(), "MOOD", {"mood": mood.value or "", "text": mood.text or ""}, profile) def sendMood(self, data, profile): """Send XEP-0107's User Mood @@ -124,8 +124,8 @@ except KeyError: error(_("Mood data must contain at least 'mood' key")) return 3 - _mood = UserMood(value, text) - self.sendPEPEvent(NS_USER_MOOD, _mood, profile) + mood = UserMood(value, text) + self.sendPEPEvent(NS_USER_MOOD, mood, profile) return 0 diff -r b6c22d9f593a -r 69a8bfd266a5 src/plugins/plugin_xep_0277.py --- a/src/plugins/plugin_xep_0277.py Mon Oct 07 13:09:57 2013 +0200 +++ b/src/plugins/plugin_xep_0277.py Tue Oct 15 19:28:34 2013 +0200 @@ -85,8 +85,8 @@ @param item: domish.Element of microblog item @return: microblog data (dictionary)""" try: - entry_elt = filter(lambda x: x.name == "entry", item.children)[0] - except KeyError: + entry_elt = [child for child in item.elements() if child.name == "entry"][0] + except IndexError: warning(_('No entry element in microblog item')) return _entry = atom.Entry().import_xml(entry_elt.toXml().encode('utf-8')) diff -r b6c22d9f593a -r 69a8bfd266a5 src/tools/xml_tools.py --- a/src/tools/xml_tools.py Mon Oct 07 13:09:57 2013 +0200 +++ b/src/tools/xml_tools.py Tue Oct 15 19:28:34 2013 +0200 @@ -75,7 +75,7 @@ except StopIteration: raise exceptions.DataError("Couldn't find expected tag") - for elt in reported_elt.children: + for elt in reported_elt.elements(): if elt.name != "field": raise exceptions.DataError("Unexpected tag") name = elt["var"] @@ -90,7 +90,7 @@ for item_elt in item_elts: fields = [] - for elt in item_elt.children: + for elt in item_elt.elements(): if elt.name != 'field': warning("Unexpected tag (%s)" % elt.name) continue