From 970661fe05995ad4981f6253fcdbf89ed29afd61 Mon Sep 17 00:00:00 2001 From: Interitio Date: Sun, 8 Sep 2024 16:55:55 +1000 Subject: [PATCH] (tags): Migrated to merged LionCog. --- src/modules/__init__.py | 8 -------- src/modules/tagstrings/__init__.py | 4 ++-- src/modules/tagstrings/cog.py | 26 ++++++++++++++++---------- 3 files changed, 18 insertions(+), 20 deletions(-) diff --git a/src/modules/__init__.py b/src/modules/__init__.py index 203eac9e..2061986c 100644 --- a/src/modules/__init__.py +++ b/src/modules/__init__.py @@ -29,17 +29,9 @@ active_discord = [ '.counters', '.nowdoing', '.shoutouts', -] - -active_twitch = [ '.tagstrings', ] - -def prepare(bot): - for ext in active_twitch: - bot.load_module(this_package + ext) - async def setup(bot): for ext in active_discord: await bot.load_extension(ext, package=this_package) diff --git a/src/modules/tagstrings/__init__.py b/src/modules/tagstrings/__init__.py index 51ee112b..c379d1b9 100644 --- a/src/modules/tagstrings/__init__.py +++ b/src/modules/tagstrings/__init__.py @@ -4,5 +4,5 @@ logger = logging.getLogger(__name__) from .cog import TagCog -def prepare(bot): - bot.add_cog(TagCog(bot)) +async def setup(bot): + await bot.add_cog(TagCog(bot)) diff --git a/src/modules/tagstrings/cog.py b/src/modules/tagstrings/cog.py index 9fbda103..f9463539 100644 --- a/src/modules/tagstrings/cog.py +++ b/src/modules/tagstrings/cog.py @@ -6,16 +6,17 @@ import difflib import twitchio from twitchio.ext import commands -from meta import CrocBot +from meta import CrocBot, LionBot, LionCog from utils.lib import utc_now from . import logger from .data import TagData -class TagCog(commands.Cog): - def __init__(self, bot: CrocBot): +class TagCog(LionCog): + def __init__(self, bot: LionBot): self.bot = bot - self.data = bot.data.load_registry(TagData()) + self.crocbot = bot.crocbot + self.data = bot.db.load_registry(TagData()) self.loaded = asyncio.Event() @@ -31,19 +32,24 @@ class TagCog(commands.Cog): self.tags.clear() self.tags.update(tags) + logger.info(f"Loaded {len(tags)} into cache.") async def cog_load(self): await self.data.init() await self.load_tags() + self._load_twitch_methods(self.crocbot) self.loaded.set() - async def ensure_loaded(self): - if not self.loaded.is_set(): - await self.cog_load() + async def cog_unload(self): + self.loaded.clear() + self.tags.clear() + self._unload_twitch_methods(self.crocbot) - @commands.Cog.event('event_ready') - async def on_ready(self): - await self.ensure_loaded() + async def cog_check(self, ctx): + if not self.loaded.is_set(): + await ctx.reply("Tasklists are still loading! Please wait a moment~") + return False + return True # API