import asyncio import logging from aiogram import Bot, Dispatcher from aiogram.client.default import DefaultBotProperties from aiogram.enums import ParseMode from config.settings import settings from bot.handlers import start, vocabulary, tasks from database.db import init_db async def main(): """Главная функция запуска бота""" # Настройка логирования logging.basicConfig( level=logging.INFO if settings.debug else logging.WARNING, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s' ) # Инициализация бота и диспетчера bot = Bot( token=settings.bot_token, default=DefaultBotProperties(parse_mode=ParseMode.HTML) ) dp = Dispatcher() # Регистрация роутеров dp.include_router(start.router) dp.include_router(vocabulary.router) dp.include_router(tasks.router) # Инициализация базы данных await init_db() # Запуск бота logging.info("Бот запущен") await dp.start_polling(bot) if __name__ == '__main__': asyncio.run(main())