Здравствуйте.
Хочу написать довольно простого бота для Telegram. Использую Telebot. Столкнулся с задачей, которую пока что самостоятельно не смог решить.
Есть список с сообщениями. Бот должен выдавать их по порядку, когда пользователь нажимает на кнопку "Следующее задание". Для ожидания ответа есть понятный bot.register_next_step_handler. А вот как его обернуть в цикл? Или есть какой-то другой метод.
test_lst = ["test_" + str(i) for i in range(1, 6)]
def next_quest_gui(m):
markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
markup.add(*[types.KeyboardButton(name) for name in ["Следующее задание", "Выход"]])
bot.send_message(m.chat.id, 'Выберите действие', reply_markup=markup)
def action(m):
send = bot.send_message(m.chat.id, 'Выберите действие')
bot.register_next_step_handler(send, cycle)
@bot.message_handler(commands=["start"])
def start(m, res=False):
bot.send_message(m.chat.id, test_lst[0])
next_quest_gui(m)
@bot.message_handler(content_types=["text"])
def cycle(m):
index = 0
if m.text == "Следующее задание":
index += 1
bot.send_message(m.chat.id, test_lst[index])
action(m)
else:
bot.send_message(m.chat.id, 'Ваш прогресс сохранен')