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

Такой момент, когда идёт команда в боте - то нужно

state сбрасывать. state.finish() под каждый handler выглядит не очень. Хочется где то в мидлваре сразу же поймать, так делают ? И если да то как) Тоесть ток один вариант в голове - pre process message - юзер айди поймать и через redis библиотеку. Как то можно ещё это реализовать получше?

21 ответов

46 просмотров

Если меньше 100 раз то не придумывай. Пиши везде

᠌᠌- Автор вопроса
Aile
Если меньше 100 раз то не придумывай. Пиши везде

Это означает, что state можно ловить только в хендлерах? Как параметр state: FSMState

᠌᠌
Это означает, что state можно ловить только в хенд...

Его можно и ловить и создавать везде

Прикол в том, что люди разбивают хендлеры на файлы по своей логике И оно хреново получается

TheLastRay (:
Прикол в том, что люди разбивают хендлеры на файлы...

Разбивай по нормальной логике =) Везде ж пишут: хэндлеры срабатывают по первому набору фильтров, который вернул True

᠌᠌
Да я разбил на файлы

Объясняю Где-то в относительно новом гайде груши найди альт регистрацию хендлеров Импортируй все команды из других файлов в main файл и объяви все хендлеры в одном файле в нужном порядке, ссылаясь ими на функции в других файлах

᠌᠌- Автор вопроса

У меня идут регистрации в каждом файле и ту функцию импортирую в main и там также в одну функцию каждый хендлер по порядку

᠌᠌
У меня идут регистрации в каждом файле и ту функци...

Вот убери все регистрации в каждом файле Оставь голые функции А объяви их все в одном файле в правильном порядке — вынеся все state * функции наверх

Ну не лови их

И что, что в разных файлах? Команды-то разные

Смотри конкретный пример import file1 import file2 import file3 В файле 1 объявлен обработчик на состояние search на любой текст В файле 2 объявлен обработчик на состояние * Поэтому обработчик файла 1 перебивает команду в файле 2, когда бот находится в стейте search

Groosha
И что, что в разных файлах? Команды-то разные

у него обработка не команд, а любого сообщения ¯\_(ツ)_/¯

TheLastRay (:
Смотри конкретный пример import file1 import file...

Неправильное заявление У тебя может быть хэндлер `@dp.message_handler(commands="alice", state="state1") А после зареганным @dp.message_handler(commands="bob", state="*") И когда юзер в состоянии "state1", то команда "bob" сработает нормально, т.к. набор фильтров commands="alice", state="state1" вернёт False из-за несовпадения команды

Groosha
Неправильное заявление У тебя может быть хэндлер ...

Ты не видишь подпись "на любой текст"? у него хендлер не на команду у него хендлер на текстовое сообщение

Причём сам же пишет "ID только из чисел". Тут прям напрашивается фильтр на числа

Groosha
https://t.me/aiogram_ru/1052471

Ну вот он этот дурак И я даю ему конкретное решение, которое ему поможет, без переделывания кода)

Groosha
Причём сам же пишет "ID только из чисел". Тут прям...

Ну кстати да В этом конкретном случае такое прокатит

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта