Discord.py 脏话过滤器

Max*_*Boy 3 python file filter python-3.x discord.py

我正在制作一个带有重写功能的discord.py 机器人。我想制作一个反脏话过滤器,这样如果有人在消息中脏话,它就会删除该消息并发送消息。我有一个脏话文件,其中包含我需要的所有单词。

这是我到目前为止的代码,但它不起作用:

@client.event
async def on_message(ctx, message):
    msg = message.content
    with open('badWords.txt') as BadWords:
        if msg in BadWords.read():
            await message.delete()
            await ctx.send("Dont use that word!")
        else:
            await ctx.process_commands(message)
Run Code Online (Sandbox Code Playgroud)

感谢所有帮助!

IPS*_*LVA 6

我们假设它的BadWords.txt格式如下:

Word1 Word2 Word3
Run Code Online (Sandbox Code Playgroud)

请注意,每个单词都用空格分隔。

因此,我们需要在函数之外打开文件on_message()。如果它在函数内部,那么我们每次都会一直打开它。这对机器人来说可能很难。因此,在顶部的import声明下方:

Word1 Word2 Word3
Run Code Online (Sandbox Code Playgroud)

现在,您拥有了名为 的数组中的所有单词badwords。进入你的on_message()函数,并添加以下内容:

with open('BadWords.txt', 'r') as f:
    words = f.read()
    badwords = words.split()

Run Code Online (Sandbox Code Playgroud)