From ef7789dc9ca48f65e1483a5d4a6147a80d938e80 Mon Sep 17 00:00:00 2001 From: Interitio Date: Wed, 22 Jul 2026 17:32:29 +0300 Subject: [PATCH] (yarn): Add yarn module for one-off commands --- src/modules/__init__.py | 3 ++- src/modules/yarn/__init__.py | 7 +++++++ src/modules/yarn/component.py | 20 ++++++++++++++++++++ 3 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 src/modules/yarn/__init__.py create mode 100644 src/modules/yarn/component.py diff --git a/src/modules/__init__.py b/src/modules/__init__.py index d1dca64..ca633a9 100644 --- a/src/modules/__init__.py +++ b/src/modules/__init__.py @@ -6,9 +6,10 @@ if TYPE_CHECKING: async def twitch_setup(bot: "Bot"): # Import and run setup methods from each module - from . import profiles, tracker, subathon, exec + from . import profiles, tracker, subathon, exec, yarn await profiles.twitch_setup(bot) await tracker.twitch_setup(bot) await subathon.twitch_setup(bot) await exec.twitch_setup(bot) + await yarn.twitch_setup(bot) diff --git a/src/modules/yarn/__init__.py b/src/modules/yarn/__init__.py new file mode 100644 index 0000000..374f99d --- /dev/null +++ b/src/modules/yarn/__init__.py @@ -0,0 +1,7 @@ +import logging + +logger = logging.getLogger() + +async def twitch_setup(bot): + from .component import YarnComponent + await bot.add_component(YarnComponent(bot)) diff --git a/src/modules/yarn/component.py b/src/modules/yarn/component.py new file mode 100644 index 0000000..2414c09 --- /dev/null +++ b/src/modules/yarn/component.py @@ -0,0 +1,20 @@ +import asyncio + +import twitchio +from twitchio import PartialUser, Scopes, eventsub +from twitchio.ext import commands as cmds + +from meta import Bot, Context + +from . import logger + +class YarnComponent(cmds.Component): + def __init__(self, bot: Bot): + self.bot = bot + + + @cmds.Component.listener() + async def event_custom_redemption_add(self, payload: twitchio.ChannelPointsRedemptionAdd): + logger.info(f"Yarn got {payload!r}") + if payload.reward.title == 'pet lilac': + await payload.broadcaster.send_message("lilac PETPET", sender="1097964183")