import logging import os import discord from discord.ext import commands import config logger = logging.getLogger("vision") DEV_GUILD_IDS = [int(x) for x in os.getenv("DEV_GUILD_IDS", "").split(",") if x.strip()] class VisionBot(commands.Bot): def __init__(self): intents = discord.Intents.default() intents.message_content = True intents.members = True super().__init__( command_prefix="!", intents=intents, application_id=config.APPLICATION_ID, ) async def setup_hook(self): logger.info("Chargement des cogs...") await self.load_extension("commandes.hello") if config.DEV and DEV_GUILD_IDS: logger.info(f"Mode DEV — sync des commands sur les guilds: {DEV_GUILD_IDS}") for guild_id in DEV_GUILD_IDS: self.tree.copy_global_to(guild=guild_id) await self.tree.sync(guild=guild_id) logger.info(f" ✓ Sync guild {guild_id}") else: logger.info("Mode PROD — sync global des slash commands...") await self.tree.sync() logger.info("Slash commands synchronisées (global)") async def on_ready(self): instance = "DEV" if config.DEV else "PROD" logger.info(f"[{instance}] Connecté en tant que {self.user} (ID: {self.user.id})") logger.info(f"[{instance}] Serveurs : {len(self.guilds)}") await self.change_presence( activity=discord.Activity( type=discord.ActivityType.watching, name="Vision Studio", ) )