Fix parsing phone and add redis storage for FSM in telegram bot

This commit is contained in:
2026-01-17 20:03:33 +03:00
parent a065c6b7be
commit 7758a3cf62
14 changed files with 164 additions and 27 deletions

View File

@@ -0,0 +1,25 @@
import redis.asyncio import redis
from aiogram.fsm.storage.base import BaseStorage
from aiogram.fsm.storage.memory import MemoryStorage
from aiogram.fsm.storage.redis import RedisStorage
from .enums import StorageTypeEnum
from .settings import StorageSettings
def get_telegram_bot_fsm_storage(settings: StorageSettings) -> BaseStorage:
match settings.type:
case StorageTypeEnum.MEMORY.value:
return MemoryStorage()
case StorageTypeEnum.REDIS.value:
redis_connection_pool = redis.ConnectionPool(
host=settings.host,
port=settings.port,
db=settings.database,
password=settings.password,
max_connections=settings.max_connections,
)
redis_client = redis.Redis(connection_pool=redis_connection_pool)
return RedisStorage(redis=redis_client)
case _:
raise ValueError(f"Unsupported telegram bot storage type: {settings.type}")