Использование Middlwares в aiogram
[edited from Alex RootJunior]Мидлвари работают со всеми типами событий из телеграма.
Хочешь научиться писать ботов? Проходи и смотри бесплатные уроки на площадке Botfather.Dev
Есть несколько точек, куда мидлварью можно вклиниваться:
- 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