love-bot/bot/main.py

40 lines
1.2 KiB
Python

import asyncio
import logging
import sys
from aiogram import Bot, Dispatcher
from aiogram.enums import ParseMode
from bot.handlers import start, game, stats
from bot.middlewares.auth_middleware import AuthMiddleware, load_initial_users
from bot.database.db import init_db
from bot.config import settings
async def main() -> None:
await init_db()
logging.info("Database initialized.")
await load_initial_users()
bot = Bot(token=settings.bot_token.get_secret_value(), parse_mode=ParseMode.HTML)
dp = Dispatcher()
dp.update.outer_middleware(AuthMiddleware())
dp.include_router(start.router)
dp.include_router(game.router)
dp.include_router(stats.router)
# TODO: Раскомментировать и добавить роутеры, когда они будут готовы
logging.info("Starting bot...")
await bot.delete_webhook(drop_pending_updates=True)
await dp.start_polling(bot)
if __name__ == "__main__":
logging.basicConfig(level=logging.INFO, stream=sys.stdout)
try:
asyncio.run(main())
except (KeyboardInterrupt, SystemExit):
logging.info("Bot stopped.")
except Exception as e:
logging.exception("Bot encountered an error:")