Python I';我想让我的机器人删除包含一个关键字的邮件

Python I';我想让我的机器人删除包含一个关键字的邮件,python,discord,discord.py,Python,Discord,Discord.py,我试图让我的机器人删除包含单词“nom”的邮件 如果我的bot-delete邮件不是以这个词开头的,我怎么能让它删除呢? 事实上,这只在消息以这个词开头时才起作用,我不知道如何让它在每次消息中都起作用。我也想让我的机器人删除它,如果有人试图写像“.nom”,“nom”等东西。有人能帮我吗 @client.event async def on_message(message): if message.content == "nom": await client.

我试图让我的机器人删除包含单词“nom”的邮件 如果我的bot-delete邮件不是以这个词开头的,我怎么能让它删除呢? 事实上,这只在消息以这个词开头时才起作用,我不知道如何让它在每次消息中都起作用。我也想让我的机器人删除它,如果有人试图写像“.nom”,“nom”等东西。有人能帮我吗

@client.event

async def on_message(message):

     if message.content == "nom":

          await client.delete_message(message)

您当前正在检查内容是否等于“nom”。要检查它是否确实包含该单词,请尝试以下操作:

如果message.content.lower()中的“nom”:
等待客户端。删除消息(消息)


这还可以识别诸如“NoM”之类的内容,因为它可以将消息转换为小写。

这是我推荐的方法

import shlex

split = shlex.split(message.content.lower())
if 'nom' in split:
    # rewrite
    await message.delete()

    # async
    await client.delete_message(message)
虽然如果你正在处理亵渎的动态列表,我建议你做类似的事情

split = shlex.split(message.content.lower())
if any(substring for bad in bad_words for substring in split if bad in substring):
    # rewrite
    await message.delete()

    # async
    await client.delete_message(message)

if语句中的genexr取自。

如果
OP
想要标记
tit
并且有人键入了
apatite
,该怎么办?上面的代码片段也会删除该消息,但除此之外,您还如何标记
.nom
nom/
等?只是指出,这并不简单,但非常感谢,但在我这么做之后,其他命令停止工作,它应该是代码高还是什么的?那。。不应该发生。您确定要将其替换为当前的
if
语句(在
on_message()下)(
)吗?可能存在重复的