Size: a a a

2020 February 12

ЕП

Евгений Петров in aiogram [ru]
ммм, че-т не понял. Пойду про мидлвари заново читать
источник

Т

Технопёс in aiogram [ru]
Евгений Петров
ммм, че-т не понял. Пойду про мидлвари заново читать
Telegram
Alex RootJunior in aiogram [ru]
мидлвари работают со всеми типами событий из телеграма

есть несколько точек, куда мидлварью можно вклиниваться:
- 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, он является главной точкой вызова мидлвари, по умолчанию…
источник

ЕП

Евгений Петров in aiogram [ru]
это я видел
источник

Т

Технопёс in aiogram [ru]
Евгений Петров
это я видел
не хватило?
источник

MG

Mario Glesias in aiogram [ru]
источник

B

Bunk 🐈 in aiogram [ru]
Все ещё не выкатил?
источник

MG

Mario Glesias in aiogram [ru]
Bunk 🐈
Все ещё не выкатил?
Угадай
источник

ЕП

Евгений Петров in aiogram [ru]
Технопёс
не хватило?
Пока не оч. Пример в доке какой-то монструозный для понимания
источник

B

Bunk 🐈 in aiogram [ru]
Mario Glesias
Угадай
Ответ нет?
источник

Т

Технопёс in aiogram [ru]
Bunk 🐈
Ответ нет?
заканчивай
источник

MG

Mario Glesias in aiogram [ru]
Bunk 🐈
Ответ нет?
Догадливый
источник

B

Bunk 🐈 in aiogram [ru]
Технопёс
заканчивай
Мвс мвс мвсссссс
источник

Т

Технопёс in aiogram [ru]
Евгений Петров
Пока не оч. Пример в доке какой-то монструозный для понимания
а что конкретно не понял?
источник

AR

Alex RootJunior in aiogram [ru]
quavo
Вместо on_ надо pre_
on_ есть всегда

Далее идет тояка взаимодействия
pre_process_
process_
post_process_

И далее название события message, poll и т. д.
источник

ЕП

Евгений Петров in aiogram [ru]
Технопёс
а что конкретно не понял?
Смотри: я хочу сделать так, чтобы бот реагировал только на команды от двух человек (по ID)

В aiogram есть кастомные фильтры (например, вот)
Я могу написать такой, а потом ставить его ПЕРЕД хэндлером.

При этом миддлварь, судя по примеру, делает примерно то же самое и ставится ПОСЛЕ хэндлера.

Я не понимаю, по каким признакам мне нужно выбирать, юзать кастомный фильтр или миддлварь и почему.
источник

AR

Alex RootJunior in aiogram [ru]
Евгений Петров
Смотри: я хочу сделать так, чтобы бот реагировал только на команды от двух человек (по ID)

В aiogram есть кастомные фильтры (например, вот)
Я могу написать такой, а потом ставить его ПЕРЕД хэндлером.

При этом миддлварь, судя по примеру, делает примерно то же самое и ставится ПОСЛЕ хэндлера.

Я не понимаю, по каким признакам мне нужно выбирать, юзать кастомный фильтр или миддлварь и почему.
Позже скину мидлварь с вайтлистом
источник

AR

Alex RootJunior in aiogram [ru]
У меня есть
источник

AR

Alex RootJunior in aiogram [ru]
И смотрю что ее можно выкатить в набор стандартных
источник

ЕП

Евгений Петров in aiogram [ru]
Спасибо, но хотелось бы ещё понять принципиальную разницу между фильтром и мидлварью
источник

q

quavo in aiogram [ru]
Мидлварь можно от спамеров юзать, мне кажется
источник