Mercurial > libervia-backend
diff sat/plugins/plugin_xep_0277.py @ 3643:30196b9a2b4c
plugin XEP-0277: use `common.uri` to parse comment URIs
author | Goffi <goffi@goffi.org> |
---|---|
date | Wed, 08 Sep 2021 11:14:53 +0200 |
parents | 7df12ffa6620 |
children | cbb988a6f507 |
line wrap: on
line diff
--- 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)