Ruby/main.py
2025-04-24 13:38:55 -04:00

43 lines
953 B
Python

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()
loop = asyncio.get_event_loop()
loop.create_task(read_books_forever()) # Book reader task
# Launch Discord bot (blocking)
client.run(TOKEN)