diff options
author | 2019-11-25 20:17:08 +0100 | |
---|---|---|
committer | 2019-11-25 20:17:08 +0100 | |
commit | c73c9bae2767da1a6dff5b4098d4af50a61aabe5 (patch) | |
tree | 7f076a4784210a6142dd0cf8ff6c8d105b3a9f8c | |
parent | Update PASTE_URL constant to be pydis instead of pythondiscord (diff) |
Make requested tweaks: Use URL constant from constants.py, re-add try/except block and implement the changes requested by Ava
-rw-r--r-- | bot/cogs/antimalware.py | 32 |
1 files changed, 17 insertions, 15 deletions
diff --git a/bot/cogs/antimalware.py b/bot/cogs/antimalware.py index 72db5bc11..745dd8082 100644 --- a/bot/cogs/antimalware.py +++ b/bot/cogs/antimalware.py @@ -1,12 +1,11 @@ import logging -from discord import Embed, Message +from discord import Embed, Message, NotFound from discord.ext.commands import Bot, Cog -from bot.constants import AntiMalware as AntiMalwareConfig, Channels +from bot.constants import AntiMalware as AntiMalwareConfig, Channels, URLs log = logging.getLogger(__name__) -PASTE_URL = "https://paste.pydis.com/" class AntiMalware(Cog): @@ -18,32 +17,35 @@ class AntiMalware(Cog): @Cog.listener() async def on_message(self, message: Message) -> None: """Identify messages with prohibited attachments.""" - if len(message.attachments) == 0: + if not message.attachments: return embed = Embed() for attachment in message.attachments: - if attachment.filename.lower().endswith('.py'): + filename = attachment.filename.lower() + if filename.endswith('.py'): embed.description = ( - "It looks like you tried to attach a Python file - please " - f"use a code-pasting service such as [{PASTE_URL}]" - f"({PASTE_URL}) instead." + f"It looks like you tried to attach a Python file - please " + f"use a code-pasting service such as {URLs.paste_service}" ) break # Other detections irrelevant because we prioritize the .py message. - if not attachment.filename.lower().endswith(tuple(AntiMalwareConfig.whitelist)): + if not filename.endswith(tuple(AntiMalwareConfig.whitelist)): + whitelisted_types = ', '.join(AntiMalwareConfig.whitelist) meta_channel = self.bot.get_channel(Channels.meta) embed.description = ( - "It looks like you tried to attach a file type that we " - "do not allow. We currently allow the following file " - f"types: **{', '.join(AntiMalwareConfig.whitelist)}**. \n\n" - f"Feel free to ask in {meta_channel.mention} if you think " - "this is a mistake." + f"It looks like you tried to attach a file type that we " + f"do not allow. We currently allow the following file " + f"types: **{whitelisted_types}**. \n\n Feel free to ask " + f"in {meta_channel.mention} if you think this is a mistake." ) if embed.description: await message.channel.send(f"Hey {message.author.mention}!", embed=embed) # Delete the offending message: - await message.delete() + try: + await message.delete() + except NotFound: + log.info(f"Tried to delete message `{message.id}`, but message could not be found.") def setup(bot: Bot) -> None: |