что на колбэк кнопку нажал администратор, но фильтр срабатывает и на те кнопки, где не установлен фильтр. Где стоит искать ошибку?
Фильтр:
class IsAdminCall(BoundFilter):
async def check(self, call: types.CallbackQuery) -> bool:
print("Why?")
if str(call.from_user.id) in ADMINS:
return True
await call.answer(cache_time=120)
return False
Применение:
@dp.callback_query_handler(IsAdminCall(), Text("test"))
async def test(call: types.CallbackQuery):
await call.message.answer_video(video=r"BAACAgIAAxkBAAIC5mEhJCkHbQlYLitSiHBXL687kXUxAAIUEAACj_8ISQABLvdAZrCJHSAE")
await call.answer(cache_time=60)
Срабатывает и на других кнопках без фильтра.
Что за ADMINS
А, ты напрямую юзаешь фильтр
Поменяй порядок фильтров
Список администраторов
Что значит "срабатывает на кнопки где не установлен фильтр"? Фильтр срабатывает чтобы проверить подходит хэндлер под событие.
Он срабатывает на все хендлеры, даже где не вписан?
Помогло, спасибо!
Если ты его не регистрировал как фильтрафабрику, не должен
Нет, он срабатывает на твой хэндлер, но на любые события
Обсуждают сегодня