aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Sebastiaan Zeeff <[email protected]>2019-09-15 02:00:04 +0200
committerGravatar Sebastiaan Zeeff <[email protected]>2019-09-15 02:00:04 +0200
commit76c9515501c09a8adb19dcff8f1d61e2a6dd188f (patch)
tree931528d338ca5c39c14ce40de0c01f08c944f7c6
parentFix AntiSpam sending duplicate messages to API (diff)
Fix deleting already deleted message in antispam
Since we're in an async context, it can happen that a message was already deleted before the antispam cog could get to it. To prevent processing from stopping dead because of a NotFound exception, I added a try-except and log message to handle that In addition, corrected a small mistake: trying to indice a single Message object. Corrected.
-rw-r--r--bot/cogs/antispam.py9
1 files changed, 6 insertions, 3 deletions
diff --git a/bot/cogs/antispam.py b/bot/cogs/antispam.py
index 22f9794f3..69367b40b 100644
--- a/bot/cogs/antispam.py
+++ b/bot/cogs/antispam.py
@@ -5,7 +5,7 @@ from datetime import datetime, timedelta
from operator import itemgetter
from typing import Dict, Iterable, List, Set
-from discord import Colour, Member, Message, Object, TextChannel
+from discord import Colour, Member, Message, NotFound, Object, TextChannel
from discord.ext.commands import Bot
from bot import rules
@@ -74,7 +74,7 @@ class DeletionContext:
else:
mod_alert_message += "Message:\n"
[message] = self.messages.values()
- content = message[0].clean_content
+ content = message.clean_content
remaining_chars = 2040 - len(mod_alert_message)
if len(content) > remaining_chars:
@@ -227,7 +227,10 @@ class AntiSpam:
# Delete the message directly instead.
else:
self.mod_log.ignore(Event.message_delete, messages[0].id)
- await messages[0].delete()
+ try:
+ await messages[0].delete()
+ except NotFound:
+ log.info(f"Tried to delete message `{messages[0].id}`, but message could not be found.")
async def _process_deletion_context(self, context_id: int) -> None:
"""Processes the Deletion Context queue."""