Mercurial > libervia-backend
diff sat/plugins/plugin_xep_0060.py @ 3394:23af257ae780
plugin XEP-0060: use `xml_tools.parse` instead of `wokkel.generic.parseXml`:
`xml_tools.parse` does a better parsing, as wokkel's `parseXml` may be missing text
nodes.
author | Goffi <goffi@goffi.org> |
---|---|
date | Thu, 12 Nov 2020 14:53:15 +0100 |
parents | 77177b13ff54 |
children | f37e6e78db12 |
line wrap: on
line diff
--- a/sat/plugins/plugin_xep_0060.py Thu Nov 12 14:53:15 2020 +0100 +++ b/sat/plugins/plugin_xep_0060.py Thu Nov 12 14:53:15 2020 +0100 @@ -26,7 +26,6 @@ from twisted.internet import reactor, defer from wokkel import disco from wokkel import data_form -from wokkel import generic # XXX: sat_tmp.wokkel.pubsub is actually use instead of wokkel version # mam and rsm come from sat_tmp.wokkel too from wokkel import pubsub @@ -37,6 +36,7 @@ from sat.core.log import getLogger from sat.core import exceptions from sat.tools import sat_defer +from sat.tools import xml_tools from sat.tools.common import data_format @@ -453,7 +453,7 @@ profile_key=C.PROF_KEY_NONE): client = self.host.getClient(profile_key) service = None if not service else jid.JID(service) - payload = generic.parseXml(payload.encode()) + payload = xml_tools.parse(payload) extra = data_format.deserialise(extra_ser) d = self.sendItem( client, service, nodeIdentifier, payload, item_id or None, extra @@ -466,7 +466,7 @@ client = self.host.getClient(profile_key) service = None if not service else jid.JID(service) try: - items = [generic.parseXml(item.encode()) for item in items] + items = [xml_tools.parse(item) for item in items] except Exception as e: raise exceptions.DataError(_("Can't parse items: {msg}").format( msg=e))