Handler
Хендлеры это конечная точка в обработке событий. Хендлеры могут быть блокирующими (если нашелся подходящий хендлер другие уже не проверяются и не выполняются) и не блокирующими (в таком случае количество выполняемых хендлеров не ограничено и зависит от того какие пройдут). По умолчанию все хендлеры являются блокирующими
Хендлеры помечаются (лейблируются) с помощью декораторов. За это отвечает Labeler
high-level инстанс с которым вы работаете. Пример с ботом:
Хендлеры ботов
message
Этот хендлер показан в примере выше
Хендлер на все сообщения (и из чата, и из личных сообщений)
chat_message
Хендлер на сообщения из чатов
private_message
Хендлер на сообщения из личных диалогов
Примечание
Типы хендлеров выше не делают ничего необычного, просто оперируют предустановленным правилом PeerRule
:
- в
message
он не предустанавливается - в
chat_message
-PeerRule(True)
- в
private_message
-PeerRule(False)
В качестве аргументов декоратор принимает инстансы правил (ABCRule
), а в качестве kwargs
он принимает значение из custom_rules (подробнее в туториале
Примечание
Если правило вернуло словарь, то он будет распакован и передан в качестве аргументов в хендлер, если он принимает их: