# HG changeset patch # User Goffi # Date 1631092493 -7200 # Node ID 30196b9a2b4ce1dbf52c2001c1b068d2d18409c0 # Parent cc3b453670a2c0681b7e6cc329a1660dc030fc9f plugin XEP-0277: use `common.uri` to parse comment URIs diff -r cc3b453670a2 -r 30196b9a2b4c sat/plugins/plugin_xep_0277.py --- a/sat/plugins/plugin_xep_0277.py Wed Sep 08 11:14:47 2021 +0200 +++ b/sat/plugins/plugin_xep_0277.py Wed Sep 08 11:14:53 2021 +0200 @@ -19,7 +19,6 @@ import time import dateutil import calendar -import urllib.parse from secrets import token_urlsafe from typing import Optional from functools import partial @@ -1006,13 +1005,12 @@ will return(JID(u'sat-pubsub.example.net'), 'urn:xmpp:comments:_af43b363-3259-4b2a-ba4c-1bc33aa87634__urn:xmpp:groupblog:somebody@example.net') @return (tuple[jid.JID, unicode]): service and node """ - parsed_url = urllib.parse.urlparse(node_url, "xmpp") - service = jid.JID(parsed_url.path) - parsed_queries = urllib.parse.parse_qs(parsed_url.query) - node = parsed_queries.get("node", [""])[0] - - if not node: - raise exceptions.DataError("Invalid comments link") + try: + parsed_url = xmpp_uri.parseXMPPUri(node_url) + service = jid.JID(parsed_url["path"]) + node = parsed_url["node"] + except Exception as e: + raise exceptions.DataError(f"Invalid comments link: {e}") return (service, node)