diff options
Diffstat (limited to 'bot/exts/holidays/halloween/spookyreact.py')
-rw-r--r-- | bot/exts/holidays/halloween/spookyreact.py | 71 |
1 files changed, 0 insertions, 71 deletions
diff --git a/bot/exts/holidays/halloween/spookyreact.py b/bot/exts/holidays/halloween/spookyreact.py deleted file mode 100644 index 99a84c4f..00000000 --- a/bot/exts/holidays/halloween/spookyreact.py +++ /dev/null @@ -1,71 +0,0 @@ -import logging -import re - -import discord -from discord.ext.commands import Cog - -from bot.bot import Bot -from bot.constants import Month -from bot.utils.decorators import in_month - -log = logging.getLogger(__name__) - -SPOOKY_TRIGGERS = { - "spooky": (r"\bspo{2,}[k|p][i|y](er|est)?\b", "\U0001F47B"), - "skeleton": (r"\bskeleton\b", "\U0001F480"), - "doot": (r"\bdo{2,}t\b", "\U0001F480"), - "pumpkin": (r"\bpumpkin\b", "\U0001F383"), - "halloween": (r"\bhalloween\b", "\U0001F383"), - "jack-o-lantern": (r"\bjack-o-lantern\b", "\U0001F383"), - "danger": (r"\bdanger\b", "\U00002620"), - "bat": (r"\bbat((wo)?m[ae]n|persons?|people|s)?\b", "\U0001F987"), -} - - -class SpookyReact(Cog): - """A cog that makes the bot react to message triggers.""" - - def __init__(self, bot: Bot): - self.bot = bot - - @in_month(Month.OCTOBER) - @Cog.listener() - async def on_message(self, message: discord.Message) -> None: - """Triggered when the bot sees a message in October.""" - for name, trigger in SPOOKY_TRIGGERS.items(): - trigger_test = re.search(trigger[0], message.content.lower()) - if trigger_test: - # Check message for bot replies and/or command invocations - # Short circuit if they're found, logging is handled in _short_circuit_check - if await self._short_circuit_check(message): - return - else: - await message.add_reaction(trigger[1]) - log.info(f"Added {name!r} reaction to message ID: {message.id}") - - async def _short_circuit_check(self, message: discord.Message) -> bool: - """ - Short-circuit helper check. - - Return True if: - * author is a bot - * prefix is not None - """ - # Check if message author is a bot - if message.author.bot: - log.debug(f"Ignoring reactions on bot message. Message ID: {message.id}") - return True - - # Check for command invocation - # Because on_message doesn't give a full Context object, generate one first - ctx = await self.bot.get_context(message) - if ctx.prefix: - log.debug(f"Ignoring reactions on command invocation. Message ID: {message.id}") - return True - - return False - - -async def setup(bot: Bot) -> None: - """Load the Spooky Reaction Cog.""" - await bot.add_cog(SpookyReact(bot)) |