2023-11-25 17:28:48 +00:00
|
|
|
import os
|
|
|
|
|
2023-11-25 15:47:09 +00:00
|
|
|
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})
|
2023-11-25 17:28:48 +00:00
|
|
|
if self.config.MODE == "dev":
|
|
|
|
kwargs.update({"debug_guilds": [1090621667778244638,1015236495910649926,957142859629342790,1125370139165081612,1170310470503247993]})
|
2023-11-25 15:47:09 +00:00
|
|
|
super().run(*args, **kwargs)
|
|
|
|
|
2023-11-25 17:28:48 +00:00
|
|
|
|
|
|
|
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())
|