diff --git a/fjerkroa_bot/discord_bot.py b/fjerkroa_bot/discord_bot.py index 2bc92cc..9aa312c 100644 --- a/fjerkroa_bot/discord_bot.py +++ b/fjerkroa_bot/discord_bot.py @@ -3,6 +3,7 @@ import argparse import tomlkit import discord import logging +import re from discord import Message, TextChannel, DMChannel from discord.ext import commands from watchdog.observers import Observer @@ -26,6 +27,7 @@ class FjerkroaBot(commands.Bot): intents = discord.Intents.default() intents.message_content = True intents.members = True + self._re_user = re.compile(r"[<][@][!]?\s*([0-9]+)[>]") self.init_observer() self.init_aichannels() @@ -115,6 +117,10 @@ class FjerkroaBot(commands.Bot): message_content = str(message.content).strip() if len(message_content) < 1: return + for ma_user in self._re_user.finditer(message_content): + uid = int(ma_user.group(1)) + user = message.guild.get_member(uid) + message_content = re.sub(f'[<][@][!]? *{uid} *[>]', f'@{user.name}', message_content) channel_name = self.get_channel_name(message.channel) msg = AIMessage(message.author.name, message_content, channel_name, self.user in message.mentions) await self.respond(msg, message.channel)