import asyncio import discord from discord.ext import commands from app.config import settings from app.internal.logger import logger class DRBBot(commands.Bot): def __init__(self): intents = discord.Intents.default() super().__init__(command_prefix="!", intents=intents) async def setup_hook(self): await self.load_extension("app.commands.radio") if settings.dev_guild_id: guild = discord.Object(id=settings.dev_guild_id) self.tree.copy_global_to(guild=guild) await self.tree.sync(guild=guild) logger.info(f"Slash commands synced to dev guild {settings.dev_guild_id}.") else: await self.tree.sync() logger.info("Slash commands synced globally.") async def on_ready(self): logger.info(f"Bot ready: {self.user} ({self.user.id})") await self.change_presence( activity=discord.Activity( type=discord.ActivityType.listening, name="the radio" ) ) bot = DRBBot() if __name__ == "__main__": bot.run(settings.discord_token)