169 похожих чатов

Есть какая то серьезная разница?

27 ответов

8 просмотров

Ну ты говоришь "для проверок используют фильтры, а не хендлеры" А почему не мидлвари тогда?

Ti-Key Автор вопроса

Груша, ты сегодня такой вредный(( может я неправильно сформулировал, но посыл в том, что тут ему точно не хендлеры нужны для проверок, а фильтры. Фильтры банально проще понять, чем мидлвари, будучи новичком, как он.

Можете подсказать как лучше реализовать черный список в боте. То есть проверку так чтобы не останавливался код в этом хендлере и дальше работал

я без наездов) просто интересна была аргументация

Что означает "не останавливался код"?

https://t.me/aiogram_ru/774594

Ti-Key Автор вопроса

да у него хендлер ловится, выполняется и всё. а он хочет чтобы у него дальше хендлеры работали

Мой вариант: banned_users = DP.get_current_state("custom_ban_list", "custom_ban_list") data = await state.get_data() if message.from_user.id in data['custom_ban_list'): user_idi_naxui

Ti-Key Автор вопроса

ладно ...

Вместо стейт у меня мускуль, в таком случае как можно реализовать?

Да похуй через что, просто поменяй функции запроса листа забаненных

Но фильтры проверяются каждый раз даже на одно событие. А в мидлвари раз

Так для этого же я должен подставить хендлер который будет обрабатывать его верно?

Можно хендлер, можно миддлварь

Ti-Key Автор вопроса

Тут ты прав.

Если поставить @dp.message_handler() то если пользователь не в списке, бот просто дальше не будет обрабатывать, я просто пока не понимаю, не хотел просто вызвать функцию бана на каждом хендлере.

Хотел одним хендлером обрабатывать все запросы если в черном списке, то дальне не пускать типо

Я свой бан-лист сделал через 2 функции в миддлвари. Всё удобно, похуй сколько всего хендлеров, многоуровневые блокировки, всё топчик

Не еби мозги подолгу и сделай миддлварь для банов, хендлеры для этого не годятся

Ti-Key Автор вопроса

так понимаю тебе нужно было это. Выглядит костыльно. @dp.message_handler() async def d(message: types.Message): await message.answer("11") if not user.banned: raise SkipHandler() @dp.message_handler(CommandStart()) async def bot_start(message: types.Message): await message.answer("22")

Хуйню написал.Вторая функция никогда не сработает

Ti-Key Автор вопроса

сработает, если сработает блок if

Тогда первая функция логически должна быть миддлварью - то бишь прослойкой между ивентом от тг и хендлерами

Сработает

Ti-Key Автор вопроса

Об этом ему все и пишут, но он видимо не удовлетворен этим ответом.

Чутка проморгал скип хендлер

Неа, не сработало (

Похожие вопросы

Обсуждают сегодня

Комрады, хотел уточнить. Проперть в OnDestroy юнита-хозяина по-прежнему доступна? И еще уточнение: finalization юнита наступает раньше или позже OnDestroy?
Ed Doc
40
А как старый хаскел с новым стыковать ? потому как тут работает https://play.haskell.org/saved/C3xpMzcd, а вот тут https://stepik.org/lesson/7602/step/9?unit=1473 нет ошибка C...
Fedor
44
Вопрос, вот задание https://stepik.org/lesson/7602/step/9?unit=1473 вот код и ошибка, удивляет, что требуется еще и Semigroup так и должно быть, или я опять делаю ошибки ? htt...
Fedor
14
Вообще, меня бы даже такой вариант, наверное устроил бы: try tag.Read(0); finally end; Но этот AV не ловится и программа завершается Exception EAccessViolation in module C...
notme
12
Проблема с Windows scripting control Множество объектов получают iDispatch обертки и отдаются в скрипты. При этом скрипты могут эти обертки держать живыми очень долго, наприм...
Arioch The
16
Скажите, можно ли как-то "переместить" динамический массив из одной переменной в другую? Скажем, переместить из TList<> в TArray<>. Именно переместить, а не скопировать. Если ...
Eugene Krasnikov (ᴊɪɴ x)
37
Да и вообще... как VBS/VBA производит вызов методов тогда? Как мне на Delphi сделать точно также, блин.... VBS/VBA не падают, а возвращают нормальный СОМ-объект, где можно про...
notme
10
Всем доброго времени суток! В BDE в своё время был файл BDEINST.dll который, как я понимаю, содержал всё что нужно для инсталляции BDE. Если посмотреть на дату его создания то...
Mikhail Tchervonenko
2
Я тут пытаюсь переработать архитектуру подсистемы памяти ядра во что-то осмысленное. Есть pmm, который создает набор range’ей(пока что только для ядра, потом для юзерспейса), ...
Evg Resh
9
комрады, че-та лыжы не едут var tmpFont: TFont; begin tmpFont:= TFont.Create; try case rgFontColor.ItemIndex of 0: tmpFont.Color:= clWindowText; 1: tmpFo...
Ed Doc
34
Карта сайта