import asyncio import logging from aiogram import Bot, Dispatcher from aiogram.client.bot import DefaultBotProperties from config import load_config from handlers import register_all_handlers from services.redis_service import RedisService async def main(): logging.basicConfig( level=logging.INFO, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s' ) config = load_config() bot = Bot(token=config.TELEGRAM_TOKEN, default=DefaultBotProperties(parse_mode="HTML")) dp = Dispatcher(bot=bot) redis_service = RedisService(config.REDIS_HOST, config.REDIS_PORT) logging.info(f"Подключение к Redis: {config.REDIS_HOST}:{config.REDIS_PORT}") register_all_handlers(dp, redis_service, config.BOT_STORAGE_PATH) try: logging.info("Запуск бота") await dp.start_polling(bot) finally: await bot.session.close() if __name__ == "__main__": asyncio.run(main())