mirror of https://github.com/stijndcl/didier
Loading cogs
parent
37dd5ba3e8
commit
e09ec5c946
|
@ -0,0 +1,14 @@
|
|||
from discord.ext import commands
|
||||
|
||||
from didier import Didier
|
||||
|
||||
|
||||
class TestCog(commands.Cog):
|
||||
client: Didier
|
||||
|
||||
def __init__(self, client: Didier):
|
||||
self.client = client
|
||||
|
||||
|
||||
async def setup(client: Didier):
|
||||
await client.add_cog(TestCog(client))
|
|
@ -1,3 +1,5 @@
|
|||
import os
|
||||
|
||||
import discord
|
||||
from discord.ext import commands
|
||||
from sqlalchemy.ext.asyncio import AsyncSession
|
||||
|
@ -10,6 +12,8 @@ from didier.utils.prefix import get_prefix
|
|||
class Didier(commands.Bot):
|
||||
"""DIDIER <3"""
|
||||
|
||||
initial_extensions: tuple[str] = ()
|
||||
|
||||
def __init__(self):
|
||||
activity = discord.Activity(type=discord.ActivityType.playing, name=settings.DISCORD_STATUS_MESSAGE)
|
||||
status = discord.Status.online
|
||||
|
@ -27,7 +31,31 @@ class Didier(commands.Bot):
|
|||
command_prefix=get_prefix, case_insensitive=True, intents=intents, activity=activity, status=status
|
||||
)
|
||||
|
||||
async def setup_hook(self) -> None:
|
||||
"""Hook called once the bot is initialised"""
|
||||
await self._load_initial_cogs()
|
||||
await self._load_directory_cogs("didier/cogs")
|
||||
|
||||
@property
|
||||
def db_session(self) -> AsyncSession:
|
||||
"""Obtain a database session"""
|
||||
return DBSession()
|
||||
|
||||
async def on_ready(self):
|
||||
"""Event triggered when the bot is ready"""
|
||||
print(settings.DISCORD_READY_MESSAGE)
|
||||
|
||||
async def _load_initial_cogs(self):
|
||||
"""Load all cogs"""
|
||||
for extension in self.initial_extensions:
|
||||
await self.load_extension(f"didier.cogs.{extension}")
|
||||
|
||||
async def _load_directory_cogs(self, path: str):
|
||||
"""Load all cogs in a given directory"""
|
||||
load_path = path.removeprefix("./").replace("/", ".")
|
||||
|
||||
for file in os.listdir(path):
|
||||
if file.endswith(".py") and not file.startswith("_") and not file.startswith(self.initial_extensions):
|
||||
await self.load_extension(f"{load_path}.{file[:-3]}")
|
||||
elif os.path.isdir(new_path := f"{path}/{file}"):
|
||||
await self._load_directory_cogs(new_path)
|
||||
|
|
2
main.py
2
main.py
|
@ -22,9 +22,9 @@ def setup_logging():
|
|||
|
||||
handler = RotatingFileHandler(settings.LOGFILE, mode="a", maxBytes=max_log_size, backupCount=5)
|
||||
handler.setFormatter(logging.Formatter("[%(asctime)s] [%(levelname)s]: %(message)s"))
|
||||
handler.setLevel(logging.INFO)
|
||||
|
||||
didier_log.addHandler(handler)
|
||||
didier_log.setLevel(logging.INFO)
|
||||
|
||||
logging.getLogger("discord").setLevel(logging.ERROR)
|
||||
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
def test_dummy():
|
||||
assert True
|
Loading…
Reference in New Issue