@Jfresearch

Как прописать проверку и ожидание корректного ввода telebot?

Подскажите, пожалуйста, как прописать проверку корректности и ожидание верного ввода

Исходный код:
def question3(message):
    question2 = message.text
    sql.execute(f"""UPDATE users SET answer2 = '{question2}' WHERE user_id = {message.chat.id}""")
...
    bot.register_next_step_handler(msg, question4)


Проверка должна быть на то, что первый символ это тэг:
question2[0] == '#'

Пробовала и через обычные if else, и через while true
По итогу либо сообщение о неправильности циклится и отправляется подряд, либо break срабатывает на весь шаг и следующие сообщения не отсылаются
  • Вопрос задан
  • 1028 просмотров
Решения вопроса 1
@coder_mihail
def question3(message):
    user_id = message.chat.id
    question3 = message.text
    if question3.startswith('#'):
        sql.execute("")
        msg = bot.send_message(user_id, 'Отлично! Следующий вопрос...')
        bot.register_next_step_handler(msg, question4)
    else:
        bot.send_message(user_id, 'Ошибка! Введите ещё раз!')
        bot.register_next_step_handler(msg, question3)


Не используй f-строки в SQL запросах! Почитай про SQL инъекцию.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы