Какая должна быть логика работы телеграм бота?

Пишу телеграм бота, в кором есть цепочка вопросов пользователю. В результате должно получиться так, что бы можно было обрабатывать несколько пользователей одновременно. Для этого решил хранить в бд данные о текущем состоянии пользователя, т.е. на каком этапе он сейчас находится, что бы можно было продолжить в любое время, даже если пользователь сделал паузу. Когда в чат поступает новое сообщение от пользователя, делается запрос к базе о текущем состоянии. Состояние хранится в виде целого числа от 0 до 3. Далее проверятся условием, и в зависимости от того какая цифра выполняется соответствующая ступень опроса.
Выглядит это так:
if int(condition) == 1:
        bot.register_next_step_handler(message, get_data2)

Проблема в том, что этот код срабатывает только со второго раза. Т.е. функция на которую ссылается register_next_step_handler, работает только после второго сообщения в чат от пользователя после первого ничего не происходит. Читал в интернете, не только я сталкивался с этой проблемой, но решения я не нашел. Подозреваю, что возможно в данном случае нужна какая то другая логика работы боты. Или может быть как то можно сделать так что бы обрабатывался код с первого раза?
  • Вопрос задан
  • 101 просмотр
Пригласить эксперта
Ваш ответ на вопрос

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

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