Вызвать функции зависимо от колбека

Есть 3 функции:

  1. send_docs_shop1()
  2. send_docs_shop2()
  3. send_docs_shop3()

Как вызвать их зависимо от callback_query. Например если callback_query=='shop1, вызвать send_docs_shop1() или callback_query=='shop2 вызвать send_docs_shop2() и тд.

Сейчас делаю так:

@bot.callback_query_handler(func=lambda call:call.data=='shop1')
def get_select_button_shop1(call: types.CallbackQuery):
markup_inline_item=types.InlineKeyboardMarkup()
markup_inline_item.add()
bot.edit_message_text(chat_id=call.message.chat.id,message_id=call.message.id,text="Вы вызвали 
shop1:",reply_markup=markup_inline_item)

@bot.message_handler()
def message_handler(message: types.Message):
if message.text in shop1:
    shop1.send_docs_shop1(message)
else:
    shop1.send_query_shop1(message)

@bot.callback_query_handler(func=lambda call:call.data=='shop2')
def get_select_button_shop2(call: types.CallbackQuery):
markup_inline_item=types.InlineKeyboardMarkup()
markup_inline_item.add()
bot.edit_message_text(chat_id=call.message.chat.id,message_id=call.message.id,text='Вы вызвали 
shop2:",reply_markup=markup_inline_item)

@bot.message_handler()
def message_handler(message: types.Message):
if message.text in shop2:
    shop2.send_docs_shop2(message)
else:
    shop2.send_query_shop2(message)

 @bot.callback_query_handler(func=lambda call:call.data=='shop3')
def get_select_button_shop3(call: types.CallbackQuery):
markup_inline_item=types.InlineKeyboardMarkup()
markup_inline_item.add()
bot.edit_message_text(chat_id=call.message.chat.id,message_id=call.message.id,text='Вы вызвали 
shop2:",reply_markup=markup_inline_item)

@bot.message_handler()
def message_handler(message: types.Message):
if message.text in shop3:
    shop3.send_docs_shop3(message)
else:
    shop3.send_query_shop3(message)

но независимо от колбека, вызывается только shop1 Прошу помочь с вопросом, уже 3 день мучаюсь, пробовала разные варианты, но результата 0.


Ответы (1 шт):

Автор решения: AntiSlang

попробуйте так

@bot.callback_query_handler(func=lambda call: True)
def callback_inline(call):
  try:
    if call.message:
      if call.data == 'shop1':
         pass
      elif call.data... 
→ Ссылка