import discord import asyncio import threading from dotenv import load_dotenv import os from model.train import train_on_message from model.brain import generate_response from dashboard.dashboard import run_dashboard load_dotenv() TOKEN = os.getenv("DISCORD_TOKEN") intents = discord.Intents.default() intents.messages = True intents.message_content = True client = discord.Client(intents=intents) @client.event async def on_ready(): print(f"Ruby is online as {client.user}.") @client.event async def on_message(message): if message.author.bot: return content = message.content.strip() train_on_message(content) response = generate_response() await message.channel.send(response) # Launch Flask in background threading.Thread(target=run_dashboard, daemon=True).start() # Launch Discord bot (blocking) client.run(TOKEN)