如何让我的聊天过滤器块绕过符号、大写和空格?? (discord.py 重写)

时间:2021-05-06 16:57:59

标签: python-3.x discord.py

很长一段时间以来,我一直在开发一个可以屏蔽很多东西的聊天过滤器。我尝试了两件事,但没有一件能正常工作。 我想出的第一段代码是这样的:

with open('badwords.txt', 'r'):
    bad_words = file.read().splitlines()

@client.event
async def on_message(message):
    for word in bad_words:
        if word in message.content.split(" "):
            await message.channel.send("Please don't send that word here.")
            await message.delete()
            break

但这只会阻止单词,因此我必须添加每个旁路,所以这对我不起作用。然后我最终尝试了一个 RegEx,它工作了一段时间,直到我发现它阻止了没有坏词的东西的问题。 这是我的正则表达式:

with open('badwords.txt', 'r'):
    blacklist = file.read().split('\n')
@client.event
async def on_message(message):    
    for word in blacklist:
        regex_match_true = re.compile(fr"[{symbols}]*".join(list(word)), re.IGNORECASE)
        regex_match_none = re.compile(fr"([{letters}]+{word})|({word}[{letters}]+)", re.IGNORECASE)
        if regex_match_true.search(message.content) and regex_match_none.search(message.content) is None:
            await message.channel.send("Please don't send that word here.")
            await message.delete()
            break

我一直在寻找更多的解决方案,但没有找到任何东西。有人可以帮我吗??

0 个答案:

没有答案