From 006ca87dc0d80dae5b5567ea7b0b732272affcd4 Mon Sep 17 00:00:00 2001 From: Zevaryx Date: Sun, 27 Aug 2023 14:50:21 -0600 Subject: [PATCH] Fix mentions in thread creation, closes #177 --- jarvis/__init__.py | 1 + jarvis/client/events/message.py | 9 +++++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/jarvis/__init__.py b/jarvis/__init__.py index ab02bd9..24eb439 100644 --- a/jarvis/__init__.py +++ b/jarvis/__init__.py @@ -75,6 +75,7 @@ async def run() -> None: | Intents.MESSAGES | Intents.GUILD_MEMBERS | Intents.GUILD_MESSAGES + | Intents.MESSAGE_CONTENT ) redis_config = config.redis.dict() redis_host = redis_config.pop("host") diff --git a/jarvis/client/events/message.py b/jarvis/client/events/message.py index 17a3bb7..fbd6561 100644 --- a/jarvis/client/events/message.py +++ b/jarvis/client/events/message.py @@ -59,10 +59,15 @@ class MessageEventMixin: await message.add_reaction(reaction) if autoreact.thread: name = message.content.replace("\n", " ") - name = re.sub(r"<:\w+:(\d+)>", "", name) + for c in message.mention_channels: + name = name.replace(f"<#{c.id}>", f"#{c.name}") + async for u in message.mention_users: + name = name.replace(f"<@{u.id}>", f"@{u.username}") + async for r in message.mention_roles: + name = name.replace(f"<@&{r.id}>", f"@{r.name}") if len(name) >= 100: name = name[:97] + "..." - await message.create_thread(name=message.content, reason="Autoreact") + await message.create_thread(name=name, reason="Autoreact") async def checks(self, message: Message) -> None: """Other message checks."""