From 9ddfcbe584ca56cc8248120698497ce5c47f12c1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Felix=20Sch=C3=A4fer?= <felix@thegcat.net>
Date: Fri, 11 Feb 2022 12:42:24 +0100
Subject: [PATCH] Handle empty configuration

---
 pretix_matrix_inviter/forms.py   |  4 +++-
 pretix_matrix_inviter/helpers.py | 13 ++++++++++++-
 2 files changed, 15 insertions(+), 2 deletions(-)

diff --git a/pretix_matrix_inviter/forms.py b/pretix_matrix_inviter/forms.py
index 401a634..a667734 100644
--- a/pretix_matrix_inviter/forms.py
+++ b/pretix_matrix_inviter/forms.py
@@ -61,7 +61,9 @@ class MatrixInviterForm(SettingsForm):
         ]
 
         room_info = matrix_room_info_for_event(self.obj)
-        if self.obj.settings.matrix_inviter_matrix_room.startswith("!"):
+        if not room_info["room_id"]:
+            room_help_text = ""
+        elif self.obj.settings.matrix_inviter_matrix_room.startswith("!"):
             if room_info["canonical_alias"]:
                 room_help_text = _(
                     '"{name}" (main address: <code>{canonical_alias}</code>)'
diff --git a/pretix_matrix_inviter/helpers.py b/pretix_matrix_inviter/helpers.py
index a5757ed..c3dfed2 100644
--- a/pretix_matrix_inviter/helpers.py
+++ b/pretix_matrix_inviter/helpers.py
@@ -27,13 +27,18 @@ def matrix_room_info(server, token, room_id_or_alias):
 
 
 def matrix_room_id(server, room_id_or_alias):
-    if room_id_or_alias.startswith("!"):
+    if not server or not room_id_or_alias:
+        return ""
+    elif room_id_or_alias.startswith("!"):
         return room_id_or_alias
     else:
         return matrix_room_id_from_alias(server, room_id_or_alias)
 
 
 def matrix_room_id_from_alias(server, alias):
+    if not server or not alias:
+        return ""
+
     r = requests.get(
         "https://{}/_matrix/client/v3/directory/room/{}".format(
             url_quote(server),
@@ -45,6 +50,9 @@ def matrix_room_id_from_alias(server, alias):
 
 
 def matrix_room_canonical_alias_from_id(server, token, room_id):
+    if not server or not token or not room_id:
+        return ""
+
     r = requests.get(
         "https://{}/_matrix/client/v3/rooms/{}/state/m.room.canonical_alias".format(
             url_quote(server),
@@ -59,6 +67,9 @@ def matrix_room_canonical_alias_from_id(server, token, room_id):
 
 
 def matrix_room_name_from_id(server, token, room_id):
+    if not server or not token or not room_id:
+        return ""
+
     r = requests.get(
         "https://{}/_matrix/client/v3/rooms/{}/state/m.room.name".format(
             url_quote(server),
-- 
GitLab