diff --git a/cogs/aimod_cog.py b/cogs/aimod_cog.py index 0272a95..a22cf60 100644 --- a/cogs/aimod_cog.py +++ b/cogs/aimod_cog.py @@ -2537,10 +2537,11 @@ CRITICAL: Do NOT output anything other than the required JSON response. print(f"Appeal AI error: {e}") return "AI review encountered an error." - @commands.Cog.listener(name="on_message") - async def message_listener(self, message: discord.Message): - """Listens to messages and triggers moderation checks.""" - print(f"on_message triggered for message ID: {message.id}") + async def _moderate_message( + self, message: discord.Message, event_name: str + ) -> None: + """Run moderation checks on a message.""" + print(f"{event_name} triggered for message ID: {message.id}") # --- Basic Checks --- # Ignore messages from bots (including self) if message.author.bot: @@ -2730,6 +2731,18 @@ CRITICAL: Do NOT output anything other than the required JSON response. f"AI analysis complete for message {message.id}. No violation detected." ) + @commands.Cog.listener(name="on_message") + async def message_listener(self, message: discord.Message) -> None: + """Trigger moderation when a new message is sent.""" + await self._moderate_message(message, "on_message") + + @commands.Cog.listener(name="on_message_edit") + async def message_edit_listener( + self, before: discord.Message, after: discord.Message + ) -> None: + """Trigger moderation when a message is edited.""" + await self._moderate_message(after, "on_message_edit") + @debug_subgroup.command( name="last_decisions", description="View the last 5 AI moderation decisions (admin only).",