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

Ребята, привет. Может кто подсказать, можно ли как то вызвать

следующий хендлер из текущего через Dispatcher? Флоу такой, что юзер может начать диалог с ботом через разные команды (например /command1, /command2 и тд), а спросить язык я должен всегда, если пользователя нет в базе. По итогу хотел получить результат, что пользователь вводит какую-то команду, если пользователя нет, то спрашиваю язык и сохраняю, а дальше редирекчу на хендлер той команды, который он ввел. Я видел, что у класса Dispatcher есть метод notify и в него можно передать аиограмовский Message, но из-за того что внутри где то вызывается FilterNotPassed, это не срабатывает

Пример того что я пробовал. https://pastebin.com/Ktz4y2k2

9 ответов

23 просмотра

Зарегистрируй первым хендлер с фильтром который проверяет нет ли пользователя в базе, в нём спрашивай язык. Потом скорми апдейт( а не сообщение) в диспетчер ещё раз

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

а откуда можно вытащить апдейт?) И как потом его обратно в диспетчер скормить?

maks
а откуда можно вытащить апдейт?) И как потом его о...

Пока рядом Тишка про контекствары говорить не хочу, а без них хз как ( Разве что с мидлвари прокидывать апдейт в кварги https://github.com/aiogram/aiogram/blob/100848b889f8d651651a4d24d369f0d2edea4334/aiogram/dispatcher/dispatcher.py#L243

Vitalii Hreben
Пока рядом Тишка про контекствары говорить не хочу...

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

имел ввиду взять апдейт с контекствара, но оно так не будет работать, что-то я затупил. Тут нам наверное прийдётся хранить данные апдейта и использовать фсм

maks- Автор вопроса
Vitalii Hreben
Зарегистрируй первым хендлер с фильтром который пр...

все равно чутка не понятно. Получается на самом верхнем уровне будет message handler с фильтром, что будет проверять есть ли пользователь в базе. Дальше, если нет, то хендлер спросит язык и предложит клаву. После того как пользователь нажмет на какую-то из кнопок как дальше будет вызов след хендлера? Даже если я и передам апдейт, он ведь будет тот что с колбеком, а не с командой

просто создаешь хендлер который триггерится если у юзера нет языка, спрашивает язык юзера, а потом его кидает в главное меню

Fᴏʀᴅᴇɴ
просто создаешь хендлер который триггерится если у...

Он хотел не в главное меню а в ту команду которую нажал юзер до выбора языка

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
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
Карта сайта