мидлвари работают со всеми типами событий из телеграма
есть несколько точек, куда мидлварью можно вклиниваться:
- pre_process: выполняется каждый раз перед началом фильтрации
- process: выполняется каждый раз после прохождения фильтра перед запуском хендлера
- post_process: выполняется каждый раз после обработки всего
итого, например, каждое сообщение проходит цепочку:
- pre_process update
- process update
- pre_process message
- filters
- process message
- handler
- post_process message
- post_process update
если ни один хендлер для сообщения не был запущен, выполняется следующая цепочка:
- pre_process update
- process update
- pre_process message
- filters
- post_process message
- post_process update
Мидлварь обязательно должна быть унаследована от BaseMiddleware
все методы для точек взаимодействия должны иметь названия:
on_<point>_<event_type>
, то есть
on_pre_process_message
,
on_post_process_update
более низкоуровневый вариант метод -
trigger
, он является главной точкой вызова мидлвари, по умолчанию он как раз и разруливает все события на методы класса мидлвари
полный список методов мидлвари можно посмотреть у
LoggingMiddleware