Как мне ответить только на последний встроенный запрос кнопки от моего бота Telegram с библиотекой Telebot - PullRequest
0 голосов
/ 18 февраля 2020

Я использую библиотеку Telebot для реализации бота Telegram, который выполняет конвертацию валюты, используя встроенные кнопки. Бот сначала предлагает пользователю нажать на валюту для обмена, а затем отправить сообщение пользователю, чтобы ввести сумму.

Затем бот отвечает на все запросы встроенных кнопок, которые были нажаты после того, как пользователь ввел сумму. Как я могу получить, чтобы мой бот отвечал только на последний встроенный запрос кнопки?

Разговор с ботом и фрагментом кода прилагается ниже.

enter image description here

@bot.callback_query_handler(func=lambda call:True)
def callback_inline(call):
    if call.data == "mainmenu":
        keyboardmain = types.InlineKeyboardMarkup(row_width=2)
        selling = types.InlineKeyboardButton(text="SELL", callback_data="sell")
        buying = types.InlineKeyboardButton(text="BUY", callback_data="buy")
        keyboardmain.add(selling,buying)
        bot.edit_message_text(chat_id=call.message.chat.id,message_id=call.message.message_id,\
        text="SELL - Exchange SGD to other currencies.\n BUY - Exchange other currencies to SGD.", 
        reply_markup=keyboardmain)
    elif call.data == "sell":
        sell(call)
    elif call.data == "buy":
        buy(call)
    elif call.data == "aud":
        msg = bot.send_message(call.message.chat.id, "How much SGD do you have?") #aud
        bot.answer_callback_query(callback_query_id=call.id, show_alert=False, text="How much SGD do you have")
        bot.register_next_step_handler(msg, calulation.process_aud_step)
    elif call.data == "cad":
        msg = bot.send_message(call.message.chat.id, "How much SGD do you have?") #cad
        bot.answer_callback_query(callback_query_id=call.id, show_alert=False, text="How much SGD do you have")
        bot.register_next_step_handler(msg, calulation.process_cad_step)
    elif call.data == "chf":
        msg = bot.send_message(call.message.chat.id, "How much SGD do you have?") #chf
        bot.answer_callback_query(callback_query_id=call.id, show_alert=False, text="How much SGD do you have")
        bot.register_next_step_handler(msg, calulation.process_chf_step)
...