diff options
| author | 2020-03-28 19:42:31 +0200 | |
|---|---|---|
| committer | 2020-03-28 19:42:31 +0200 | |
| commit | 2544670fa38cea1f53147307b6b1e1134265a74f (patch) | |
| tree | 92760ce05692ba14f1c49a04bc502c7930ddc712 | |
| parent | (Webhook Detection): Call `on_message` instead repeating code. (diff) | |
(Webhook Detection): Added grouping to RegEx compilation, removed unnecessary function `scan_message`, moved this content to `on_message` event.
| -rw-r--r-- | bot/cogs/webhook_remover.py | 17 | 
1 files changed, 4 insertions, 13 deletions
| diff --git a/bot/cogs/webhook_remover.py b/bot/cogs/webhook_remover.py index 5fb676045..afa88ce89 100644 --- a/bot/cogs/webhook_remover.py +++ b/bot/cogs/webhook_remover.py @@ -1,6 +1,5 @@  import logging  import re -import typing as t  from discord import Colour, Message  from discord.ext.commands import Cog @@ -9,7 +8,7 @@ from bot.bot import Bot  from bot.cogs.moderation.modlog import ModLog  from bot.constants import Channels, Colours, Event, Icons -WEBHOOK_URL_RE = re.compile(r"discordapp\.com/api/webhooks/\d+/\S+/?") +WEBHOOK_URL_RE = re.compile(r"(discordapp\.com/api/webhooks/)(\d+/)(\S+/?)")  ALERT_MESSAGE_TEMPLATE = (      "{user}, looks like you posted Discord Webhook URL to chat. " @@ -32,14 +31,6 @@ class WebhookRemover(Cog):          """Get current instance of `ModLog`."""          return self.bot.get_cog("ModLog") -    async def scan_message(self, msg: Message) -> t.Tuple[bool, t.Optional[str]]: -        """Scan message content to detect Webhook URLs. Return `bool` about does this have Discord webhook URL.""" -        matches = WEBHOOK_URL_RE.search(msg.content) -        if matches: -            return True, matches[0] -        else: -            return False, None -      async def delete_and_respond(self, msg: Message, url: str) -> None:          """Delete message and show warning when message contains Discord Webhook URL."""          # Create URL that will be sent to logs, remove token @@ -71,9 +62,9 @@ class WebhookRemover(Cog):      @Cog.listener()      async def on_message(self, msg: Message) -> None:          """Check is Discord Webhook URL in sent message.""" -        is_url_in, url = await self.scan_message(msg) -        if is_url_in: -            await self.delete_and_respond(msg, url) +        matches = WEBHOOK_URL_RE.search(msg.content) +        if matches: +            await self.delete_and_respond(msg, "".join(matches.groups()[:-1]) + "xxx")      @Cog.listener()      async def on_message_edit(self, before: Message, after: Message) -> None: | 
