@antihrust

Возможно ли изменить callback?

@bot.callback_query_handler(lambda call: call.data == 'osh')
def callback_inline(call):
    
    if call.data == 'osh':
        bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id, text='Выберите регион:',
                              reply_markup=markups.osh())
    if call.data == 'msk':
        bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id, text='Выберите регион:',
                              reply_markup=markups.msk())
        
    if call.data == 'moblast':
        bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id, text='Выберите год:',
                              reply_markup=markups.moblast())
    if call.data == 'god1':
        bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id, text='Выберите этап:',
                              reply_markup=markups.god1())

    if call.data == 'nap1':
        bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id, text='Выберите предмет:',
                              reply_markup=markups.nap1())


Решил разделить свой многострочный бот на отдельные файлы, и столкнулся с проблемой callback. Хотелось бы понять, возможно ли в двух файлах включить ловца коллов @bot.callback_query_handler(func=lambda call: True) ? На практике выяснил, что нет, но это неточно. Код состоит из более 1000 строк однотипных инлайнов, которые ранее объединялись одним ловцом. Возможно ли не ставить вместо if @bot.callback_query_handler(lambda call: call.data == 'osh') ?
  • Вопрос задан
  • 129 просмотров
Пригласить эксперта
Ответы на вопрос 1
@bacon
Проблема в том что все "ботописатели" не жалеют учить основы. Все ваши if оформаляются, например, в словарь и заменяются на одну строку.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы