следующий хендлер из текущего через Dispatcher? Флоу такой, что юзер может начать диалог с ботом через разные команды (например /command1, /command2 и тд), а спросить язык я должен всегда, если пользователя нет в базе. По итогу хотел получить результат, что пользователь вводит какую-то команду, если пользователя нет, то спрашиваю язык и сохраняю, а дальше редирекчу на хендлер той команды, который он ввел. Я видел, что у класса Dispatcher есть метод notify и в него можно передать аиограмовский Message, но из-за того что внутри где то вызывается FilterNotPassed, это не срабатывает
Пример того что я пробовал. https://pastebin.com/Ktz4y2k2
Зарегистрируй первым хендлер с фильтром который проверяет нет ли пользователя в базе, в нём спрашивай язык. Потом скорми апдейт( а не сообщение) в диспетчер ещё раз
а откуда можно вытащить апдейт?) И как потом его обратно в диспетчер скормить?
Пока рядом Тишка про контекствары говорить не хочу, а без них хз как ( Разве что с мидлвари прокидывать апдейт в кварги https://github.com/aiogram/aiogram/blob/100848b889f8d651651a4d24d369f0d2edea4334/aiogram/dispatcher/dispatcher.py#L243
а как твои глобалы помогут если у тебя между вызовом первого и второго хэндлера может процесс перезапуститься?
имел ввиду взять апдейт с контекствара, но оно так не будет работать, что-то я затупил. Тут нам наверное прийдётся хранить данные апдейта и использовать фсм
все равно чутка не понятно. Получается на самом верхнем уровне будет message handler с фильтром, что будет проверять есть ли пользователь в базе. Дальше, если нет, то хендлер спросит язык и предложит клаву. После того как пользователь нажмет на какую-то из кнопок как дальше будет вызов след хендлера? Даже если я и передам апдейт, он ведь будет тот что с колбеком, а не с командой
вот уже более похоже на правду
просто создаешь хендлер который триггерится если у юзера нет языка, спрашивает язык юзера, а потом его кидает в главное меню
Он хотел не в главное меню а в ту команду которую нажал юзер до выбора языка
Обсуждают сегодня