@James_Obry

Как понять в каком состоянии или группе состояний находится телеграм бот?

Пишу бота в телеграм и возникла необходимость каким-то образом узнать в каком состоянии находится бот, когда пользователь нажимает на инлайн кнопку, подскажите пожалуйста как такое можно провернуть?

class registration(StatesGroup):
    waiting_for_name = State()
    waiting_for_age = State()
    waiting_for_sex = State()
    waiting_for_city = State()
    waiting_for_interest = State()
    waiting_for_voice = State()

Если пользователь находится в одном из этих состояний бот должен выдавать ошибку.

Бота пишу на языке python последней версии и библиотеке aiogram.
  • Вопрос задан
  • 2029 просмотров
Решения вопроса 1
@James_Obry Автор вопроса
class registration(StatesGroup):
    waiting_for_name = State()
    waiting_for_age = State()
    waiting_for_sex = State()
    waiting_for_city = State()
    waiting_for_interest = State()
    waiting_for_voice = State()

async def check_state(message: types.Message, state: FSMContext):
    current_state = await state.get_state()  # текущее машинное состояние пользователя
    if current_state in registration: # registration - название класса состояний
        print('Пользователь в одном из состояний регистрации')
    if current_state == 'registration:waiting_for_name':
        print('Пользователь находиться в конкретном состоянии - waiting_for_name из класса registration')
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@ambal245
Как выход записывать в БД значение. После нажатие на кнопку пользователем проверять значение и отправлять нужное сообщение.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы