Philipp Hörist pushed to branch master at gajim / python-nbxmpp
Commits:
0d2ba73b by Philipp Hörist at 2026-06-20T08:50:28+02:00
feat: Add helper method parse_account_invite()
- - - - -
2 changed files:
- + nbxmpp/modules/account_invite.py
- nbxmpp/structs.py
Changes:
=====================================
nbxmpp/modules/account_invite.py
=====================================
@@ -0,0 +1,52 @@
+# Copyright (C) 2026 Philipp Hörist <philipp AT hoerist.com>
+#
+# This file is part of nbxmpp.
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+from __future__ import annotations
+
+import datetime as dt
+
+from nbxmpp.modules.dataforms import SimpleDataForm
+from nbxmpp.modules.date_and_time import parse_datetime
+from nbxmpp.protocol import Node
+from nbxmpp.structs import AccountInviteResult
+
+
+def parse_account_invite(form: Node) -> AccountInviteResult:
+ form = SimpleDataForm(extend=form)
+ assert isinstance(form, SimpleDataForm)
+ # TODO: Check form type once its standardized
+ # field = form.vars.get("FORM_TYPE")
+ # if field is None:
+ # return None
+
+ try:
+ uri = form["uri"].value
+ except Exception:
+ raise ValueError("uri field is missing")
+
+ assert isinstance(uri, str)
+ if not uri:
+ raise ValueError("empty uri value")
+
+ try:
+ landing_url = form["landing-url"].value or None
+ except Exception:
+ landing_url = None
+
+ assert isinstance(landing_url, str | None)
+
+ try:
+ expire = parse_datetime(form["expire"].value)
+ except Exception:
+ expire = None
+
+ assert isinstance(expire, dt.datetime | None)
+
+ return AccountInviteResult(
+ uri=uri,
+ landing_url=landing_url,
+ expire=expire,
+ )
=====================================
nbxmpp/structs.py
=====================================
@@ -1532,3 +1532,10 @@ class BodyData:
except exceptions.FallbackLanguageError:
log.warning("Missing fallback for language: %s", lang)
return text
+
+
+@dataclass
+class AccountInviteResult:
+ uri: str
+ landing_url: str | None
+ expire: datetime | None
View it on GitLab:
https://dev.gajim.org/gajim/python-nbxmpp/-/commit/0d2ba73b3ce59eb386ae2cbcfcadf962220b5e36
--
View it on GitLab:
https://dev.gajim.org/gajim/python-nbxmpp/-/commit/0d2ba73b3ce59eb386ae2cbcfcadf962220b5e36
You're receiving this email because of your account on dev.gajim.org.
_______________________________________________
Commits mailing list -- [email protected]
To unsubscribe send an email to [email protected]