Как проверить отправленное пользователем сообщение в телеграмме python telebot
Хочу сделать чтобы человек вводил рандомную капчу и программа проверяла её подлинность, но не могу преобразовать str в int.
import telebot
import random
from telebot import types
...
@bot.message_handler(content_types=["text"]) def working(message):
if message.text == "Начать":
capcha = int(random.randint(10000,99999))
bot.send_message(message.chat.id, capcha)
if message.text == capcha:
bot.send_message(message.chat.id, "Ответ верный")
else:
bot.send_message(message.chat.id, "Ответ неверный")
elif message.text == "Список лидеров":
bot.send_message(message.chat.id, "В разработке...")
else:
bot.send_message(message.chat.id, 'Чтобы пользоваться ботом нажмите "Начать"')
bot.polling(none_stop=True)
Ответы (2 шт):
Не уверен в грамотности своего предложения, но что, если пойти от обратного и преобразовывать капчу в формат str, и затем сравнивать уже str-значения? Для этого после строки с генерацией капчи можно просто добавить что-то вроде "capcha = str(capcha)". Если это решение не подойдет, расскажите, пожалуйста, почему - буду учиться :)
Вроде работает без доп функции это не решить наверно у тебя в message.text не капча
@bot.message_handler(content_types=["text"])
def working(message):
if message.text == "Начать":
global capcha;
capcha = int(random.randint(10000,99999))
d = bot.send_message(message.chat.id, capcha)
bot.register_next_step_handler(d ,cap)
def cap(message):
global d;
d = message.text
f = str(capcha)
if d == f:
bot.send_message(message.chat.id, "Ответ верный")
else:
bot.send_message(message.chat.id, "Ответ неверный")