@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.
  • Вопрос задан
  • 1705 просмотров
Решения вопроса 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
Как выход записывать в БД значение. После нажатие на кнопку пользователем проверять значение и отправлять нужное сообщение.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
07 мая 2024, в 13:07
7000 руб./за проект
07 мая 2024, в 12:59
500 руб./за проект
07 мая 2024, в 12:58
25000 руб./за проект