diff options
| author | 2019-12-03 21:43:15 -0800 | |
|---|---|---|
| committer | 2019-12-03 21:43:15 -0800 | |
| commit | 400f7c85da237a118024a4fb4e73802c8700fc46 (patch) | |
| tree | aeeb9ea011ba8bbe3e40f01cbe83f6f5cb312aba | |
| parent | ModLog: 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.py | 22 |
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: |