Могу ли я вызвать несколько обработчиков сообщений одной командой?

Я хочу внести свой вклад в создание бота для телеграмм, функциональность которого разделена на модули. Этот бот показывает расписание занятий в моем университете. Я хочу добавить свой модуль, отображающий другие события. Также я хочу иметь минимальное вмешательство в другие модули, кроме моего.

Расписание на текущий день показано с помощью /todayкоманда и обработчик для нее уже определены. Я хочу добавить свой собственный обработчик, который также будет отправлять пользователю сообщение с моими событиями.

Вопрос в том, могу ли я объявить два разных обработчика сообщений следующим образом:

      # module1.py
@bot.message_handler(commands=['today'])
def show_classes():
    ...

# my_module.py
@bot.message_handler(commands=['today'])
def show_events():
    ...

Будет ли этот подход работать? Если нет, как правильно это сделать?

1 ответ

Наконец добрался до моего ПК. Нет, это не сработает. Фильтры обработчиков сообщений проверяются до первого совпадения. Только с таким кодом test()будет вызываться, когда /conприбывает.

      @bot.message_handler(commands=['con'])
def test(message: Message):
    bot.send_message(message.chat.id,"test1")

@bot.message_handler(commands=['con'])
def test2(message: Message):
    bot.send_message(message.chat.id,"test2")
Другие вопросы по тегам