Использование Middlwares в aiogram

Использование 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

Примеры:

ThrottlingMiddlware

LoggingMiddleware

I18N

Report Page