From e076c3b70238e0fb6e817af819ccc1c1190f9ce6 Mon Sep 17 00:00:00 2001
From: ffaadd <me@ffaadd.xyz>
Date: Mon, 21 Mar 2022 13:13:12 +0100
Subject: [PATCH 1/5] fix for #130 and #155

---
 cogs/learninggroups.py | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/cogs/learninggroups.py b/cogs/learninggroups.py
index 675db08..c040c37 100644
--- a/cogs/learninggroups.py
+++ b/cogs/learninggroups.py
@@ -257,8 +257,10 @@ class LearningGroups(commands.Cog):
         category = await self.bot.fetch_channel(self.categories[GroupState.ARCHIVED])
         await self.move_channel(channel, category)
         await channel.edit(name=f"archiv-${channel.name[1:]}")
-        await self.remove_group(channel)
         await self.update_permissions(channel)
+        await self.remove_group(channel)
+        await self.update_statusmessage()
+
 
     async def set_channel_state(self, channel, state: GroupState = None):
         channel_config = self.channels[str(channel.id)]
-- 
GitLab


From 0f343ce231d0ae335ce73e2b47fe0e4be0904ec1 Mon Sep 17 00:00:00 2001
From: ffaadd <me@ffaadd.xyz>
Date: Mon, 21 Mar 2022 13:29:34 +0100
Subject: [PATCH 2/5] fix for #153

---
 cogs/learninggroups.py | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/cogs/learninggroups.py b/cogs/learninggroups.py
index c040c37..e249f06 100644
--- a/cogs/learninggroups.py
+++ b/cogs/learninggroups.py
@@ -419,11 +419,14 @@ class LearningGroups(commands.Cog):
             users[mid] = True
             user = await self.bot.fetch_user(mid)
             if user and send_message:
-                await utils.send_dm(user, f"Du wurdest in die Lerngruppe <#{channel.id}> aufgenommen. " 
-                                          "Viel Spass beim gemeinsamen Lernen!\n"
-                                          "Dieser Link führt dich direkt zum Lerngruppen-Channel. " 
-                                          "Diese Nachricht kannst du bei Bedarf in unserer Unterhaltung " 
-                                          "über Rechtsklick anpinnen.")
+                try:
+                    await utils.send_dm(user, f"Du wurdest in die Lerngruppe <#{channel.id}> aufgenommen. " 
+                                              "Viel Spass beim gemeinsamen Lernen!\n"
+                                              "Dieser Link führt dich direkt zum Lerngruppen-Channel. " 
+                                              "Diese Nachricht kannst du bei Bedarf in unserer Unterhaltung " 
+                                              "über Rechtsklick anpinnen.")
+                except:
+                    pass
 
         group_config["users"] = users
 
-- 
GitLab


From 569c7fd712dc1b1ee1688c6e3c2a739b0d5560d4 Mon Sep 17 00:00:00 2001
From: ffaadd <me@ffaadd.xyz>
Date: Mon, 21 Mar 2022 13:32:05 +0100
Subject: [PATCH 3/5] add filter to learngroup request to reduce support time
 and fix for #159

---
 cogs/learninggroups.py | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/cogs/learninggroups.py b/cogs/learninggroups.py
index e249f06..0a27bc8 100644
--- a/cogs/learninggroups.py
+++ b/cogs/learninggroups.py
@@ -583,13 +583,24 @@ class LearningGroups(commands.Cog):
     )
     @cmd_lg.command(name="request", aliases=["r", "req"])
     async def cmd_request_group(self, ctx, arg_course, arg_name, arg_semester, arg_state):
+
+        arg_state = re.sub(r"[^a-z]", "", arg_state.lower())
+
         state = self.arg_state_to_group_state(arg_state)
+
+        arg_course = re.sub(r"[^0-9]", "", arg_course)
+        arg_course = re.sub(r"^0+", "", arg_course)
+
         arg_name = re.sub(
             r"[^A-Za-zäöüß0-9-]",
             "",
             arg_name.lower().replace(" ", "-")
         )
+
         arg_semester = arg_semester.lower()
+        arg_semester = re.sub(r"[^wiseo0-9]", "", arg_semester)
+
+
         if len(arg_semester) == 8:
             arg_semester = f"{arg_semester[0:4]}{arg_semester[-2:]}"
         channel_config = {"owner_id": ctx.author.id, "course": arg_course, "name": arg_name, "semester": arg_semester,
-- 
GitLab


From 709f740d377e8cf7864627f165a0a6cba7150923 Mon Sep 17 00:00:00 2001
From: ffaadd <me@ffaadd.xyz>
Date: Mon, 21 Mar 2022 14:23:27 +0100
Subject: [PATCH 4/5] add detection of semester and status in learngroup
 requests to switch if arguments if needed, should fix # 63

---
 cogs/learninggroups.py | 17 +++++++++++++----
 1 file changed, 13 insertions(+), 4 deletions(-)

diff --git a/cogs/learninggroups.py b/cogs/learninggroups.py
index 0a27bc8..ddbd53d 100644
--- a/cogs/learninggroups.py
+++ b/cogs/learninggroups.py
@@ -578,13 +578,23 @@ class LearningGroups(commands.Cog):
             "name": "Ein frei wählbarer Text ohne Leerzeichen.",
             "semester": "Das Semester, für welches diese Lerngruppe erstellt werden soll. sose oder wise gefolgt "
             "von der zweistelligen Jahreszahl (z. B. sose22).",
-            "status": "Gibt an ob die Lerngruppe für weitere Lernwillige geöffnet ist (open) oder nicht (closed)."
+            "status": "Gibt an ob die Lerngruppe für weitere Lernwillige geöffnet ist (open) oder nicht (closed) oder ob es sich um eine private Lerngruppe handelt (private)."
         }
     )
     @cmd_lg.command(name="request", aliases=["r", "req"])
     async def cmd_request_group(self, ctx, arg_course, arg_name, arg_semester, arg_state):
 
-        arg_state = re.sub(r"[^a-z]", "", arg_state.lower())
+        arg_state = re.sub(r"[^a-z0-9]", "", arg_state.lower())
+        arg_semester = re.sub(r"[^a-z0-9]", "", arg_semester.lower())
+
+        if re.match(r"(wise)|(sose)[0-9]+", arg_state) and re.match(r"(open)|(closed*)|(private)", arg_semester):
+            tmp = arg_state
+            arg_state = arg_semester
+            arg_semester = tmp
+
+        arg_semester = re.sub(r"[^wiseo0-9]", "", arg_semester)
+
+        arg_state = re.sub(r"[^a-z]", "", arg_state)
 
         state = self.arg_state_to_group_state(arg_state)
 
@@ -597,8 +607,7 @@ class LearningGroups(commands.Cog):
             arg_name.lower().replace(" ", "-")
         )
 
-        arg_semester = arg_semester.lower()
-        arg_semester = re.sub(r"[^wiseo0-9]", "", arg_semester)
+
 
 
         if len(arg_semester) == 8:
-- 
GitLab


From b7a5a9164d1833a2527a268fa8761f94388770cf Mon Sep 17 00:00:00 2001
From: ffaadd <me@ffaadd.xyz>
Date: Mon, 21 Mar 2022 14:52:06 +0100
Subject: [PATCH 5/5] add ping for lg-owner on join request. fix #145

---
 cogs/learninggroups.py | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/cogs/learninggroups.py b/cogs/learninggroups.py
index ddbd53d..21dbd55 100644
--- a/cogs/learninggroups.py
+++ b/cogs/learninggroups.py
@@ -925,7 +925,7 @@ class LearningGroups(commands.Cog):
             channel=channel,
             title="Jemand möchte deiner Lerngruppe beitreten!",
             description=f"<@!{ctx.author.id}> möchte gerne der Lerngruppe **#{channel.name}** beitreten.",
-            message=f"Anfrage von <@!{ctx.author.id}>",
+            message=f"<@!{group_config['owner_id']}>, du wirst gebraucht. Anfrage von <@!{ctx.author.id}>:",
             custom_prefix="learninggroups:join"
         )
         await utils.send_dm(ctx.author, f"Deine Anfrage wurde an **#{channel.name}** gesendet. "
@@ -999,8 +999,8 @@ class LearningGroups(commands.Cog):
 
         if self.is_group_owner(channel, member) or self.is_mod(member):
             if confirmed:
-                if message.mentions and len(message.mentions) == 1:
-                    await self.add_member_to_group(channel, message.mentions[0])
+                if message.mentions and len(message.mentions) == 2:
+                    await self.add_member_to_group(channel, message.mentions[1])
                     await self.update_permissions(channel)
 
                 else:
-- 
GitLab