Fix user names in messages.

This commit is contained in:
OK 2023-08-18 20:32:04 +02:00
parent 1d995c5db4
commit 771d965e8c

View File

@ -3,6 +3,7 @@ import argparse
import tomlkit import tomlkit
import discord import discord
import logging import logging
import re
from discord import Message, TextChannel, DMChannel from discord import Message, TextChannel, DMChannel
from discord.ext import commands from discord.ext import commands
from watchdog.observers import Observer from watchdog.observers import Observer
@ -26,6 +27,7 @@ class FjerkroaBot(commands.Bot):
intents = discord.Intents.default() intents = discord.Intents.default()
intents.message_content = True intents.message_content = True
intents.members = True intents.members = True
self._re_user = re.compile(r"[<][@][!]?\s*([0-9]+)[>]")
self.init_observer() self.init_observer()
self.init_aichannels() self.init_aichannels()
@ -115,6 +117,10 @@ class FjerkroaBot(commands.Bot):
message_content = str(message.content).strip() message_content = str(message.content).strip()
if len(message_content) < 1: if len(message_content) < 1:
return 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) channel_name = self.get_channel_name(message.channel)
msg = AIMessage(message.author.name, message_content, channel_name, self.user in message.mentions) msg = AIMessage(message.author.name, message_content, channel_name, self.user in message.mentions)
await self.respond(msg, message.channel) await self.respond(msg, message.channel)