代码:
#W A T C H E R
@bot.event
async def on_message(message):
# L O G G I N G
username = message.author.display_name
msg = message.content
with open('blacklist.txt', 'r') as f:
blacklist = f.read()
if message.author.bot:
return
elif msg.lower() in blacklist:
await message.delete()
else:
await bot.process_commands(message)
该代码只是检查用户输入是否在黑名单单词列表中,并基于此删除或保留消息。但机器人会不断删除用户发布的图像,而不仅仅是黑名单类别中列出的单词
自动删除任何频道中的用户图像
当他们发送图像时,他们很可能不发送任何内容,因此
msg.lower()
是一个空字符串,并且空字符串总是在任何字符串中考虑检查内容是否在黑名单的列表内,而不是单个字符串,例如
str.split
返回字符串中的单词列表:https://docs.python.org/3.8/library/stdtypes.html#str.split或者更好的方法是在
blacklist.split()
上循环并检查是否有任何单词在msg.lower()
内,例如if any(word for word in blacklist.split() if word in msg.lower())
相关问题 更多 >
编程相关推荐