pre_process_update не доступны например в pre_process_message?
Интересный вопрос 🤔 А что за кейс такой?
Бот отправляет вопрос в группу, участники должны отгадать. Ну типа того)))
Нет, я про кейс того, когда нужно что-то добавлять в on_pre_process_update и ловить в ...._message
Ну я раньше генерил сессию в LifetimeMiddleware сначала проверяя, что ключа "session" в data нет, после создания сессии брал юзера из БД по id, и если его не было, то делал insert. Сейчас обнаружил, что у меня в pre_process_update и pre_process_message создаются разные сессии, и в результате этого вторая попытка создания юзера виснет, из-за того что таблица заморожена предыдущим insert-ом
А зачем создавать сессию ещё и в _message? 🤔
потому что писал я это с идеей, что когда код дойдет до _message, то сессия, созданная в _update уже будет доступна
а сможешь сделать MRE, где видно, что ты кладешь дату, и потом не можешь её получить в фильтрах?
Почему именно лайфтайм?
потому что позволяет без особых костылей ловить пред и пост обработку всех апдейтов
ну вообще изначально я у кого-то в темплейте подглядел его
https://paste.aiogram.dev/inufoqavig.py
Стой, а ты не думаешь, что как раз таки из-за типа апдейта, что ты хендлишь, он и не получает из _update данные? Попробуй навесить фильтр на update хендлер
ну так я про это и говорю, что данные, добавленные в _message работают только в message-фильтрах или message-хендлерах. мне казалось, что цикл обработки сообщения находится внутри цикла обработки апдейта, и поэтому данные из _update миддлварей тоже там должны быть доступны
не, если мне не изменяет память, апдейт как таковой - отдельный тип апдейта (глупо звучит 😁) Т.е. для апдейта свои мидлвари, для сообщения - свои Соответственно и фильтры тоже будут работать в таком же виде
ну вот меня запутал вот такой порядок видимо
@JRootJunior действительно такой порядок обработки апдейта в мидлварях? @klkvr не может получить данные из pre_process_update в pre_process_message и далее в фильтре MRE: https://paste.aiogram.dev/inufoqavig.py
такой. а data между апдейтом и сообщением точно не передается в 2.х.
там сквозная передача данных от точки входа (запуска обработки) до обработчика
Обсуждают сегодня