import os from types import SimpleNamespace from typing import Any, cast from discord import AutoShardedBot from discord.ext import commands, tasks from Christmas.config import ChristmasConfig class Christmas(AutoShardedBot): def __init__(self, *args: Any, **kwargs: Any): super().__init__(*args, **kwargs) self.config = ChristmasConfig() def run(self, *args: Any, **kwargs: Any) -> None: kwargs.update({"token": self.ctx.config.TOKEN}) if self.config.MODE == "dev": kwargs.update({"debug_guilds": [1090621667778244638,1015236495910649926,957142859629342790,1125370139165081612,1170310470503247993]}) super().run(*args, **kwargs) def load_cogs(bot) -> None: for filename in os.listdir("Christmas/Cogs"): if filename == "__pycache__": continue if filename.endswith(".py"): bot.load_extension(f"Christmas.cogs.{filename[:-3]}") def apply_uvloop() -> None: try: import uvloop import asyncio except ImportError: pass else: uvloop.install() asyncio.set_event_loop_policy(uvloop.EventLoopPolicy())