У меня в коде есть один хэндлер на инлайн кнопки, который срабатывает и заменяет текст. Сейчас появилась надобность в другом хэндлере, так как вызываю в другой функции инлайн кнопки.
Для быстрой читабельности сокращу код
Это
первый хэндлер
@bot.callback_query_handler(func=lambda call: True)
def callback_inline(call):
if call.data == 'yes':
bot.send_message(message.from_user.id, 'Ваша заявка была принята!')
if call.data == 'no':
bot.send_message(message.from_user.id, 'Ваша заявка была отклонена!')
Вызывается
тут:
def text(message):
item_yes = types.InlineKeyboardButton(text='Принять', callback_data='yes')
item_no = types.InlineKeyboardButton(text='Отказаться', callback_data='no')
markup_inline.add(item_yes, item_no)
bot.send_message(-1001775453865,
'<b>НОВАЯ ЗАЯВКА !\n {0}\n {1}\n {2}\nЗаказчик: @{3}'.format(
message.text, message.from_user.id, message.from_user.first_name,
message.from_user.username),reply_markup=markup_inline, parse_mode="html")
Как только я добавляю
второй хэндлер, вот этот:
@bot.callback_query_handler(func=lambda call: True)
def purchaseCrystal_call(call):
if call.data == '150_p':
count_150 = crystal.create_invoice(150)
bot.send_message(call.message.from_user.id, f"{count_150.url}")
Который вызывается
тут:
def purchase_crystal(message):
markup_count_purchase1 = types.InlineKeyboardMarkup()
invoice_5 = types.InlineKeyboardButton(text='150р', callback_data='150_p')
invoice_6 = types.InlineKeyboardButton(text='300р', callback_data='300_p')
invoice_7 = types.InlineKeyboardButton(text='450p', callback_data='450_p')
invoice_8 = types.InlineKeyboardButton(text='600р', callback_data='600_p')
markup_count_purchase1.add(invoice_5, invoice_6, invoice_7, invoice_8)
bot.send_message(message.from_user.id, "<b>Выберите сумму пополнения:</b>",
parse_mode="html", reply_markup=markup_count_purchase1)
То разом все инлайн кнопки
перестают работать, пробовал:
@bot.callback_query_handler(func=lambda call: call.data.startswith('text'))
Не помогло, так же видел про паттерны, но никакую информацию по ним не нашёл :(