43 lines
953 B
Python
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)
|