Перейти к содержанию

FSMStrategy

Стратегия формирования ключа FSM.

class FSMStrategy(str, Enum):
    USER_IN_CHAT = "user_in_chat"
    CHAT = "chat"
    GLOBAL_USER = "global_user"
    USER_IN_TOPIC = "user_in_topic"
    CHAT_TOPIC = "chat_topic"

Описание стратегий

Стратегия Формирование ключа
USER_IN_CHAT (bot_id, chat_id, user_id)по умолчанию. Каждый пользователь имеет отдельное состояние в каждом чате
CHAT (bot_id, chat_id, chat_id) — общее состояние для всего чата
GLOBAL_USER (bot_id, user_id, user_id) — глобальное состояние пользователя
USER_IN_TOPIC (bot_id, chat_id:topic, user_id) — привязано к топику
CHAT_TOPIC (bot_id, chat_id:topic, chat_id:topic) — привязано к топику чата

apply_strategy

def apply_strategy(
    strategy: FSMStrategy,
    event_context: EventContext,
    bot_id: int,
) -> StorageKey

Применяет стратегию к контексту события и возвращает StorageKey.

Исходный файл

maxgram/fsm/strategy.py