aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar MarkKoz <[email protected]>2019-12-03 21:43:15 -0800
committerGravatar MarkKoz <[email protected]>2019-12-03 21:43:15 -0800
commit400f7c85da237a118024a4fb4e73802c8700fc46 (patch)
treeaeeb9ea011ba8bbe3e40f01cbe83f6f5cb312aba
parentModLog: fix 0 message logs uploaded when no attachments given (diff)
AntiSpam: remove bot field from DeletionContext
The destination channel can be retrieved be accessing a message's guild. * Remove unused queue_consumption_tasks attribute.
-rw-r--r--bot/cogs/antispam.py22
1 files changed, 8 insertions, 14 deletions
diff --git a/bot/cogs/antispam.py b/bot/cogs/antispam.py
index 1a60897c9..669c62c75 100644
--- a/bot/cogs/antispam.py
+++ b/bot/cogs/antispam.py
@@ -42,7 +42,6 @@ class DeletionContext:
"""Represents a Deletion Context for a single spam event."""
channel: TextChannel
- bot: Bot
members: Dict[int, Member] = field(default_factory=dict)
rules: Set[str] = field(default_factory=set)
messages: Dict[int, Message] = field(default_factory=dict)
@@ -61,7 +60,7 @@ class DeletionContext:
self.messages[message.id] = message
# Re-upload attachments
- destination = self.bot.get_channel(GuildConfig.attachment_repost)
+ destination = message.guild.get_channel(GuildConfig.attachment_repost)
urls = await send_attachments(message, destination, link_large=False)
self.attachments.append(urls)
@@ -77,7 +76,7 @@ class DeletionContext:
# For multiple messages or those with excessive newlines, use the logs API
if len(self.messages) > 1 or 'newlines' in self.rules:
- url = await modlog.upload_log(self.messages.values(), actor_id, attachments=self.attachments)
+ url = await modlog.upload_log(self.messages.values(), actor_id, self.attachments)
mod_alert_message += f"A complete log of the offending messages can be found [here]({url})"
else:
mod_alert_message += "Message:\n"
@@ -113,7 +112,6 @@ class AntiSpam(Cog):
self.expiration_date_converter = Duration()
self.message_deletion_queue = dict()
- self.queue_consumption_tasks = dict()
self.bot.loop.create_task(self.alert_on_validation_error())
@@ -187,15 +185,11 @@ class AntiSpam(Cog):
full_reason = f"`{rule_name}` rule: {reason}"
# If there's no spam event going on for this channel, start a new Message Deletion Context
- if message.channel.id not in self.message_deletion_queue:
- log.trace(f"Creating queue for channel `{message.channel.id}`")
- self.message_deletion_queue[message.channel.id] = DeletionContext(
- channel=message.channel,
- bot=self.bot
- )
- self.queue_consumption_tasks = self.bot.loop.create_task(
- self._process_deletion_context(message.channel.id)
- )
+ channel = message.channel
+ if channel.id not in self.message_deletion_queue:
+ log.trace(f"Creating queue for channel `{channel.id}`")
+ self.message_deletion_queue[message.channel.id] = DeletionContext(channel)
+ self.bot.loop.create_task(self._process_deletion_context(message.channel.id))
# Add the relevant of this trigger to the Deletion Context
await self.message_deletion_queue[message.channel.id].add(
@@ -212,7 +206,7 @@ class AntiSpam(Cog):
self.punish(message, member, full_reason)
)
- await self.maybe_delete_messages(message.channel, relevant_messages)
+ await self.maybe_delete_messages(channel, relevant_messages)
break
async def punish(self, msg: Message, member: Member, reason: str) -> None: