print(message) # debug
if message.text.lower() == 'да':
bot.send_message(message.chat.id, text='Погнали 👍',
reply_markup=telebot.types.ReplyKeyboardRemove())
msg = bot.send_message(message.chat.id, text='🔥🔥🔥 Выберите действие: 🔥🔥🔥',
reply_markup=keyboard_main)
bot.register_next_step_handler(msg, choose_action)
else:
translate = translator.translate_custom_text(message.text.lower())
bot.send_message(message.chat.id, translate)
# Декоратор обрабатывает все нажатия на инлайн кнопки
@bot.callback_query_handler(func=lambda call: True)
def choose_action(call):
print(call)
if call.data == 'random_word':
bot.send_message(call.message.chat.id, translator.sending_random_word(),
reply_markup=keyboard_again)
У меня два обработчика, на текст, и на инлайн кнопки, иногад отарбатывает нормально, и так и так, а иногад выкидывает ошибку
AttributeError: 'Message' object has no attribute 'data'
Т.Е почему-то ожидает инлайн нажатие, хотя ввожу текст, т.е работает с переменным успехом, не понимаю от чего зависит.
скорее ты последущие условие не поставил (предположение)
может быть, но иногад норм работает... х3 как это обработать
просто, должен сработать @bot.message_handler, а срабатывает @bot.callback_query_handler(func=lambda call: True)
для чего ты используеш call?
изменил на @bot.callback_query_handler(func=lambda c: True) вместо @bot.callback_query_handler(func=lambda call: True) пока работает, не знаю. на долго ли
message нету data, может date или datetime?
да, его ент, если это call вызов, а если текст то там text значение, вот он должен определеить текст я ввожу, или кнопку нажимаю
мб lambda: call=True?
возможно, но пока пашет. чудеса
Обсуждают сегодня