Size: a a a

2020 May 29

AR

Alex RootJunior in aiogram [ru]
частичное решение
источник

Y🏳

Yacha 🏳‍🌈 in aiogram [ru]
Так, а как мне настроить dev среду? Я то изменил файл прямо в установленной либе.
источник

$

$name$ in aiogram [ru]
𝐃𝐚𝐧𝐢𝐢𝐥 𝐊𝐨𝐯𝐚𝐥𝐞𝐧𝐤𝐨
Я тебе кинул пример Алекса
Оно выглядит слишком сложна(
источник

Y🏳

Yacha 🏳‍🌈 in aiogram [ru]
Короче я сделал PR - https://github.com/aiogram/aiogram/pull/341 :D
источник

🇷

🇷🇺Dima🇩🇪 in aiogram [ru]
а вот еще вопрос небольшой.
у меня 2 хендлера, первый принимает только с каким-то определенным состоянием, допустим state1, а второй принимает со всеми состояниями.
При получении сообщения от юзера с состоянием state1, задействован будет только тот, который выше в коде же находится?
источник

𝐃𝐊

𝐃𝐚𝐧𝐢𝐢𝐥 𝐊𝐨𝐯𝐚𝐥𝐞𝐧𝐤𝐨... in aiogram [ru]
$name$
Оно выглядит слишком сложна(
validate отвечает просто за то, чтобы использовать аргументы, его не трогай

post_init собирает из хендлера нужные аргументы в переменную required_permissions. Например, если ты  ввёл user_can_delete_messages=True, то он будет содержать этот аргумент.

_get_chat_member возвращает мембера нужного чата. Сначала он проверяет, есть ли закэшированный объект в message.conf, а если его нет, то отправляет запрос и кэширует. Таким образом, запрос отсылается только один раз за апдейт.

check уже непосредственно регулирует доступ к хендлеру. Если он возвращает False, хендлер пропускается. Если возвращает True, то хендлер запускается.
Если вернуть словарь, то он попадёт в хендлер, в нашем случае это ChatMember
источник

𝐃𝐊

𝐃𝐚𝐧𝐢𝐢𝐥 𝐊𝐨𝐯𝐚𝐥𝐞𝐧𝐤𝐨... in aiogram [ru]
Тут он сверяет required permissions с разрешениями, которые есть у нашего мембера
источник

ЕП

Евгений Петров... in aiogram [ru]
🇷🇺Dima🇩🇪
а вот еще вопрос небольшой.
у меня 2 хендлера, первый принимает только с каким-то определенным состоянием, допустим state1, а второй принимает со всеми состояниями.
При получении сообщения от юзера с состоянием state1, задействован будет только тот, который выше в коде же находится?
Да, хэндлеры проверяются по мере их появления в коде
источник

$

$name$ in aiogram [ru]
Спасибо огромное, постараюсь разобраться
источник

🇷

🇷🇺Dima🇩🇪 in aiogram [ru]
Евгений Петров
Да, хэндлеры проверяются по мере их появления в коде
спасибо
источник

𝐃𝐊

𝐃𝐚𝐧𝐢𝐢𝐥 𝐊𝐨𝐯𝐚𝐥𝐞𝐧𝐤𝐨... in aiogram [ru]
$name$
Спасибо огромное, постараюсь разобраться
А это действие, как я уже говорил, прокидывает мембера в хендлер. То есть, мы сможем написать:

@dp.message_handler(user_can_restrict_members=True)
async def restrict(msg: Message, user_member: ChatMember):
   ...
источник

$

$name$ in aiogram [ru]
Прикольно
источник

𝐃𝐊

𝐃𝐚𝐧𝐢𝐢𝐥 𝐊𝐨𝐯𝐚𝐥𝐞𝐧𝐤𝐨... in aiogram [ru]
$name$
Прикольно
У Sophie тоже есть немного протюнингованный пример:

https://www.github.com/MrYacha/SophieBot/tree/unstable/sophie_bot%2Futils%2Ffilters%2Fadmin_rights.py
источник

Y🏳

Yacha 🏳‍🌈 in aiogram [ru]
источник

Y🏳

Yacha 🏳‍🌈 in aiogram [ru]
А как сделать тесты? :(
источник

AR

Alex RootJunior in aiogram [ru]
Yacha 🏳‍🌈
А как сделать тесты? :(
не так.
источник

AR

Alex RootJunior in aiogram [ru]
и это параметризацией пилится.
источник

Y🏳

Yacha 🏳‍🌈 in aiogram [ru]
:(
источник

AR

Alex RootJunior in aiogram [ru]
а, стоп
источник

AR

Alex RootJunior in aiogram [ru]
не параметризацией, разноси на три теста
источник