diff options
| author | 2020-06-15 10:26:23 -0700 | |
|---|---|---|
| committer | 2020-06-15 10:35:00 -0700 | |
| commit | c7373fa1143a2d2f2d784a59d40bcb40ee765bfb (patch) | |
| tree | 8eedf535d02e4f0b4dd1a9830595e6f13a4f6751 | |
| parent | Add the C# guild to the whitelist (diff) | |
Token remover: ignore DMs
It's a private channel so there's no risk of a token "leaking".
Furthermore, messages cannot be deleted in DMs.
| -rw-r--r-- | bot/cogs/token_remover.py | 3 | ||||
| -rw-r--r-- | tests/bot/cogs/test_token_remover.py | 10 |
2 files changed, 13 insertions, 0 deletions
diff --git a/bot/cogs/token_remover.py b/bot/cogs/token_remover.py index d55e079e9..493479df9 100644 --- a/bot/cogs/token_remover.py +++ b/bot/cogs/token_remover.py @@ -63,6 +63,9 @@ class TokenRemover(Cog): See: https://discordapp.com/developers/docs/reference#snowflakes """ + if not msg.guild: + return # Ignore DMs; can't delete messages in there anyway. + found_token = self.find_token_in_message(msg) if found_token: await self.take_action(msg, found_token) diff --git a/tests/bot/cogs/test_token_remover.py b/tests/bot/cogs/test_token_remover.py index a10124d2d..22c31d7b1 100644 --- a/tests/bot/cogs/test_token_remover.py +++ b/tests/bot/cogs/test_token_remover.py @@ -121,6 +121,16 @@ class TokenRemoverTests(unittest.IsolatedAsyncioTestCase): find_token_in_message.assert_called_once_with(self.msg) take_action.assert_not_awaited() + @autospec(TokenRemover, "find_token_in_message") + async def test_on_message_ignores_dms(self, find_token_in_message): + """Shouldn't parse a message if it is a DM.""" + cog = TokenRemover(self.bot) + self.msg.guild = None + + await cog.on_message(self.msg) + + find_token_in_message.assert_not_called() + @autospec("bot.cogs.token_remover", "TOKEN_RE") def test_find_token_ignores_bot_messages(self, token_re): """The token finder should ignore messages authored by bots.""" |