Почему тг бот не реагирует на сообщения?
Написал бота, но на сообщение "Попросить подсказку" вообще не реагирует.
Код:
@bot.message_handler(commands=['start'])
def send_welcome(message):
bot.reply_to(message, "Привет, введи номер задачи для тренеровки")
types.ReplyKeyboardRemove()
@bot.message_handler(func=lambda message: True)
def echo_message(message):
tasknum = message.text
if tasknum == '1':
randomnum = random.randint(1, 3)
with open('tasks.txt', 'r', encoding='utf-8') as f:
list = (f.readlines())
for i in list:
if '*' + str(randomnum) in i: task = i
with open('answers.txt', 'r', encoding='utf-8') as f:
list = (f.readlines())
for i in list:
if '*' + str(randomnum) in i: answer = i
with open('hint.txt', 'r', encoding='utf-8') as f:
list = (f.readlines())
for i in list:
if '*' + str(randomnum) in i: hint = i
print(task, answer, hint)
def commandt(message):
if (tasknum == "Попросить подсказку"):
print("1")
bot.send_message(message.chat.id, text=hint)
elif (tasknum == answer):
bot.send_message(message.chat.id, text='Молодец, ответ правильный')
elif (tasknum == "Пропустить"):
bot.send_message(message.chat.id, text="Введи номер задачи для тренеровки")
bot.polling(none_stop=True)
Ответы (1 шт):
Автор решения: KonneR
→ Ссылка
@bot.message_handler(commands=['start'])
def send_welcome(message):
bot.reply_to(message, "Привет, введи номер задачи для тренеровки")
@bot.message_handler(func=lambda message: True)
def echo_message(message):
if message.text == "Попросить подсказку":
return # Если нажата кнопка "Попросить подсказку", то не перезапрашиваем номер задачи
tasknum = message.text
if tasknum.isdigit():
tasknum = int(tasknum)
with open('tasks.txt', 'r', encoding='utf-8') as f:
tasks = f.readlines()
with open('answers.txt', 'r', encoding='utf-8') as f:
answers = f.readlines()
with open('hint.txt', 'r', encoding='utf-8') as f:
hints = f.readlines()
if 1 <= tasknum <= len(tasks):
task = tasks[tasknum - 1]
answer = answers[tasknum - 1]
hint = hints[tasknum - 1]
markup = telebot.types.ReplyKeyboardMarkup(resize_keyboard=True)
hint_button = telebot.types.KeyboardButton("Попросить подсказку")
skip_button = telebot.types.KeyboardButton("Пропустить")
markup.add(hint_button, skip_button)
bot.send_message(message.chat.id, text=task, reply_markup=markup)
@bot.message_handler(func=lambda message: message.text == "Попросить подсказку")
def send_hint(message):
bot.send_message(message.chat.id, text=hint)
@bot.message_handler(func=lambda message: message.text == answer)
def check_answer(message):
bot.send_message(message.chat.id, text='Молодец, ответ правильный')
@bot.message_handler(func=lambda message: message.text == "Пропустить")
def skip_task(message):
bot.send_message(message.chat.id, text="Введи номер задачи для тренеровки")
else:
bot.send_message(message.chat.id, text="Неверный номер задачи")
else:
bot.send_message(message.chat.id, text="Введите номер задачи")
bot.polling(none_stop=True)
Должно заработать, сделал логику для кнопок и добавил проверку на номер введенной задачи