2025-12-04 11:09:54 +03:00
|
|
|
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
|
2025-12-04 14:46:30 +03:00
|
|
|
from bot.handlers import start, vocabulary, tasks, settings as settings_handler
|
2025-12-04 11:09:54 +03:00
|
|
|
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)
|
2025-12-04 14:30:06 +03:00
|
|
|
dp.include_router(tasks.router)
|
2025-12-04 14:46:30 +03:00
|
|
|
dp.include_router(settings_handler.router)
|
2025-12-04 11:09:54 +03:00
|
|
|
|
|
|
|
|
# Инициализация базы данных
|
|
|
|
|
await init_db()
|
|
|
|
|
|
|
|
|
|
# Запуск бота
|
|
|
|
|
logging.info("Бот запущен")
|
|
|
|
|
await dp.start_polling(bot)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
|
|
|
asyncio.run(main())
|