qopscribe/telegram_bot/main.py

34 lines
991 B
Python

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())