feat: Tái cấu trúc bot sang kiến trúc cog, thêm hỗ trợ đa máy chủ, giới thiệu tính năng đăng ký bóng đá, giao diện web và quản lý cấu hình.

This commit is contained in:
2026-01-16 17:26:42 +07:00
parent 8c38357c28
commit b24365927a
39 changed files with 3864 additions and 997 deletions
+56
View File
@@ -0,0 +1,56 @@
import os
import discord
from discord.ext import commands
from dotenv import load_dotenv
from repositories.config import ConfigRepository
from infra.db import postgres
# Load environment variables
load_dotenv()
from repositories.guild import GuildRepository
class VirtusBot(commands.Bot):
def __init__(self):
intents = discord.Intents.default()
intents.message_content = True
intents.members = True
intents.voice_states = True
intents.guilds = True
super().__init__(
command_prefix='!',
intents=intents,
help_command=None # Disable default help command
)
self.config_repo = ConfigRepository()
self.guild_repo = GuildRepository()
async def setup_hook(self):
# Database initialization
await postgres.create_tables()
# Load Cogs
await self.load_extension('bot.cogs.home_debt')
await self.load_extension('bot.cogs.score')
await self.load_extension('bot.cogs.noi_tu')
await self.load_extension('bot.cogs.football')
# Sync Application Commands
await self.tree.sync()
print(f"Logged in as {self.user} (ID: {self.user.id})")
async def on_ready(self):
print(f'{self.user} has connected to Discord!')
# Register existing guilds on startup
for guild in self.guilds:
await self.guild_repo.create_or_update(guild.id, guild.name)
print(f"✅ Registered Guild: {guild.name} ({guild.id})")
async def on_guild_join(self, guild):
await self.guild_repo.create_or_update(guild.id, guild.name)
print(f"👋 Joined new Guild: {guild.name} ({guild.id})")
bot = VirtusBot()