Size: a a a

2020 August 14

l

lik33v3n | likeeven in aiogram [ru]
Пытаюсь из error_handler'a сбросить стейт пользователя:

id = getattr(update, "message",  update.callback_query).from_user.id
state = dp.current_state(chat=id, user=id)
await state.reset_data()
await state.reset_state()


Id достаётся, стейт(FSMcontext) тоже достал, а вот ресеты молча не работают, кто знает в чём проблема?
источник

<Юрий> 👨‍🔬 Чеб... in aiogram [ru]
Евгений Петров
лол, да не за что. @WebpageBot вообще полезная штука, странно, что у него галочки нет.
Это просто чудо какое-то. Спасибо за бота!!
источник

t

tripladdictsss in aiogram [ru]
Бан
Саблайм норм
vim и тот лучше саблайма
источник

<Юрий> 👨‍🔬 Чеб... in aiogram [ru]
‌‌‎lyteloli
Отсутствие доки не означает что её не нужно изучить
Нот бэд
источник

<Юрий> 👨‍🔬 Чеб... in aiogram [ru]
Niel Armstrong
Ребят, подскажи пожалуйста, можно ли из msg_handler'a отправить callbackdata, чтобы её уже обработал query_handler?
Разделяй код нормально. Хендлеры не должны вызывать друг друга
источник

f

fishsouprecipe 🤍 in aiogram [ru]
Ребят, как написать мидлварю-фильтр, чтобы не писать фильтр ко всем хендлерям
источник

f

fishsouprecipe 🤍 in aiogram [ru]
Нужно отвечать только определённым user_id
источник

<Юрий> 👨‍🔬 Чеб... in aiogram [ru]
‌‌‎lyteloli
Вот гляди один хендлер на любое количество менюшек

https://github.com/lyteloli/NekoGram
Жутковато
источник

<Юрий> 👨‍🔬 Чеб... in aiogram [ru]
fishsouprecipe 🤍
Ребят, как написать мидлварю-фильтр, чтобы не писать фильтр ко всем хендлерям
Проверяешь юзера в мидлваре и raise CancelHandler если не надо отвечать
источник

f

fishsouprecipe 🤍 in aiogram [ru]
<Юрий> 👨‍🔬 Чебышев
Проверяешь юзера в мидлваре и raise CancelHandler если не надо отвечать
Пример хотелось бы
источник

<Юрий> 👨‍🔬 Чеб... in aiogram [ru]
fishsouprecipe 🤍
Пример хотелось бы
Ты справишься!
источник

<Юрий> 👨‍🔬 Чеб... in aiogram [ru]
Возьми пример любой мидлвари из репы
источник

f

fishsouprecipe 🤍 in aiogram [ru]
<Юрий> 👨‍🔬 Чебышев
Возьми пример любой мидлвари из репы
я вот не знаю где взять on_process_message, on_process_update, preprocess_update
источник

<Юрий> 👨‍🔬 Чеб... in aiogram [ru]
fishsouprecipe 🤍
я вот не знаю где взять on_process_message, on_process_update, preprocess_update
Явно on_pre_process_
Начни с update - это раньше, нагрузки на сервер меньше. Если не получится то message
источник

<Юрий> 👨‍🔬 Чеб... in aiogram [ru]
fishsouprecipe 🤍
я вот не знаю где взять on_process_message, on_process_update, preprocess_update
https://t.me/aiogram_ru/133605
Вот хорошее описание
Telegram
Alex RootJunior in aiogram [ru]
мидлвари работают со всеми типами событий из телеграма

есть несколько точек, куда мидлварью можно вклиниваться:
- pre_process: выполняется каждый раз перед началом фильтрации
- process: выполняется каждый раз после прохождения фильтра перед запуском хендлера
- post_process: выполняется каждый раз после обработки всего

итого, например, каждое сообщение проходит цепочку:
- pre_process update
- process update
- pre_process message
- filters
- process message
- handler
- post_process message
- post_process update

если ни один хендлер для сообщения не был запущен, выполняется следующая цепочка:
- pre_process update
- process update
- pre_process message
- filters
- post_process message
- post_process update


Мидлварь обязательно должна быть унаследована от BaseMiddleware

все методы для точек взаимодействия должны иметь названия:
on_<point>_<event_type>, то есть on_pre_process_message, on_post_process_update
более низкоуровневый вариант метод - trigger, он является главной точкой вызова мидлвари, по умолчанию…
источник

К

Костя in aiogram [ru]
<Юрий> 👨‍🔬 Чебышев
https://t.me/aiogram_ru/133605
Вот хорошее описание
Telegram
Alex RootJunior in aiogram [ru]
мидлвари работают со всеми типами событий из телеграма

есть несколько точек, куда мидлварью можно вклиниваться:
- pre_process: выполняется каждый раз перед началом фильтрации
- process: выполняется каждый раз после прохождения фильтра перед запуском хендлера
- post_process: выполняется каждый раз после обработки всего

итого, например, каждое сообщение проходит цепочку:
- pre_process update
- process update
- pre_process message
- filters
- process message
- handler
- post_process message
- post_process update

если ни один хендлер для сообщения не был запущен, выполняется следующая цепочка:
- pre_process update
- process update
- pre_process message
- filters
- post_process message
- post_process update


Мидлварь обязательно должна быть унаследована от BaseMiddleware

все методы для точек взаимодействия должны иметь названия:
on_<point>_<event_type>, то есть on_pre_process_message, on_post_process_update
более низкоуровневый вариант метод - trigger, он является главной точкой вызова мидлвари, по умолчанию…
Миддлварь - она?
источник

<Юрий> 👨‍🔬 Чеб... in aiogram [ru]
Костя
Миддлварь - она?
Почему нет?
источник

‌‌‎lyteloli in aiogram [ru]
Где именно? Пока только пилю
источник

<Юрий> 👨‍🔬 Чеб... in aiogram [ru]
‌‌‎lyteloli
Где именно? Пока только пилю
Весь код в одном классе. У меня в проекте 8к строк. Это все надо в один класс писать в такой структуре?

Колбек хендлер нечитаемый с миллионом ифов внутри

Отступы говорят уже больше 3 не очень, а у тебя я боюсь считать сколько.
Кстати сколько у тебя длина строки?
источник

<Юрий> 👨‍🔬 Чеб... in aiogram [ru]
И это я бегло смотрел только колбек хендлер который ты предложил и то за что глаз зацепился
источник