from aiogram import Bot, Dispatcher from aiogram.client.default import DefaultBotProperties from aiogram.enums import ParseMode from aiogram.fsm.storage.base import DefaultKeyBuilder from aiogram.fsm.storage.redis import RedisStorage from aiogram.utils.i18n.core import I18n from aiohttp import web from redis.asyncio import ConnectionPool, Redis from bot.core.config import DEFAULT_LOCALE, I18N_DOMAIN, LOCALES_DIR, settings app = web.Application() token = settings.BOT_TOKEN bot = Bot(token=token, default=DefaultBotProperties(parse_mode=ParseMode.HTML)) redis_client = Redis( connection_pool=ConnectionPool( host=settings.REDIS_HOST, port=settings.REDIS_PORT, password=settings.REDIS_PASS, db=0, ), ) storage = RedisStorage( redis=redis_client, key_builder=DefaultKeyBuilder(with_bot_id=True), ) dp = Dispatcher(storage=storage) i18n: I18n = I18n(path=LOCALES_DIR, default_locale=DEFAULT_LOCALE, domain=I18N_DOMAIN) DEBUG = settings.DEBUG