如何在aiogram 3.x中使用BoundFilter

问题描述 投票:0回答:1

我正在尝试使用自定义类型的过滤器,例如 aiogram 2.x 中的 BoundFilter 来过滤不允许的字符。

但是推荐

class AllowedCharactersFilter(BoundFilter):
    async def check(self, message: types.Message):
        allowed_characters = set('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890')
        entered_text = message.text
        return all(char in allowed_characters for char in entered_text)

不起作用。因为在 aiogram 3.4 中都不是

from aiogram.dispather.filters import BoundFilter

也不

from aiogram.filters import BoundFilter

工作。

BoundFilter 是否要以其他方式导入?

我发现通过使用从 aiogram.filters 导入的 BaseFilter 可能可以解决该问题。在过滤器下创建新目录。

但是程序的描述不清楚。 Comebody 能否阐明这个主题:如何在 aiogram 3.4 的处理程序中过滤不允许的字符?

python filter chatbot handler aiogram
1个回答
0
投票

我不使用

aiogram
所以我无法测试它但是......

看起来

3.x
魔法滤镜,也许你只需要
F.text.isalnum()

@router.message(F.text.isalnum())
© www.soinside.com 2019 - 2024. All rights reserved.