Могу ли я вызвать несколько обработчиков сообщений одной командой?
Я хочу внести свой вклад в создание бота для телеграмм, функциональность которого разделена на модули. Этот бот показывает расписание занятий в моем университете. Я хочу добавить свой модуль, отображающий другие события. Также я хочу иметь минимальное вмешательство в другие модули, кроме моего.
Расписание на текущий день показано с помощью
/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")