使用数组过滤掉 swear/curse 个词(辱骂性语言)
filter out swear/curse words (abusive language) using an array
我正在制作一个 nextcord 机器人,我想为 swear/curse 个单词实现一个过滤器。我想要一个数组中的所有这些词,并分配给一个变量(即 badwords)。我的问题是它说“语法无效”。你能帮我解决这个问题吗?
@commands.Cog.listener()
async def on_message(self, message):
if "https://discord" in message.content:
embed = nextcord.Embed(title="**Tu n'as pas le droit d'envoyer des liens d'invitation**")
log = self.bot.get_channel(916007109424984115)
logembed = nextcord.Embed(title="Link", description="Quelqu'un a envoyé un lien discord")
await message.delete()
await log.send(embed=logembed)
await message.channel.send(embed=embed)
badwords = ["list of badwords"]
elif badwords in message.content:
log = self.bot.get_channel()
await message.delete()
await message.channel.send(embed=embed)
我没有做嵌入,swear/curse-words 的日志系统也没有。
您必须遍历列表的元素。这可以通过以下方式完成:
@commands.Cog.listener()
async def on_message(self, message):
badwords = ["list of badwords"] #move list declaration over here
if "https://discord" in message.content:
embed = nextcord.Embed(title="**Tu n'as pas le droit d'envoyer des liens d'invitation**")
log = self.bot.get_channel(916007109424984115)
logembed = nextcord.Embed(title="Link", description="Quelqu'un a envoyé un lien discord")
await message.delete()
await log.send(embed=logembed)
await message.channel.send(embed=embed)
else:
if any(badword in message.content for badword in badwords): # check if any badword in message.content
log = self.bot.get_channel()
await message.delete()
await message.channel.send(embed=embed)
break # Exit the loop as we don't need to go further
是async def造成的无效语法吗?
在这种情况下,您可能需要检查您的 python 版本是否 >3.6
你的代码有 2 个错误
您正在 message.content 上迭代一个列表,并且您在 elif 语句之前声明了坏词,这导致 if 语句中断,因此请在 if 语句开始之前声明它
message = 'curse'
badwords = ['curse'] #declare badwords here
if False:
pass
elif message in badwords: # iterate your message.content over the badwords list
print(True)
我正在制作一个 nextcord 机器人,我想为 swear/curse 个单词实现一个过滤器。我想要一个数组中的所有这些词,并分配给一个变量(即 badwords)。我的问题是它说“语法无效”。你能帮我解决这个问题吗?
@commands.Cog.listener()
async def on_message(self, message):
if "https://discord" in message.content:
embed = nextcord.Embed(title="**Tu n'as pas le droit d'envoyer des liens d'invitation**")
log = self.bot.get_channel(916007109424984115)
logembed = nextcord.Embed(title="Link", description="Quelqu'un a envoyé un lien discord")
await message.delete()
await log.send(embed=logembed)
await message.channel.send(embed=embed)
badwords = ["list of badwords"]
elif badwords in message.content:
log = self.bot.get_channel()
await message.delete()
await message.channel.send(embed=embed)
我没有做嵌入,swear/curse-words 的日志系统也没有。
您必须遍历列表的元素。这可以通过以下方式完成:
@commands.Cog.listener()
async def on_message(self, message):
badwords = ["list of badwords"] #move list declaration over here
if "https://discord" in message.content:
embed = nextcord.Embed(title="**Tu n'as pas le droit d'envoyer des liens d'invitation**")
log = self.bot.get_channel(916007109424984115)
logembed = nextcord.Embed(title="Link", description="Quelqu'un a envoyé un lien discord")
await message.delete()
await log.send(embed=logembed)
await message.channel.send(embed=embed)
else:
if any(badword in message.content for badword in badwords): # check if any badword in message.content
log = self.bot.get_channel()
await message.delete()
await message.channel.send(embed=embed)
break # Exit the loop as we don't need to go further
是async def造成的无效语法吗? 在这种情况下,您可能需要检查您的 python 版本是否 >3.6
你的代码有 2 个错误
您正在 message.content 上迭代一个列表,并且您在 elif 语句之前声明了坏词,这导致 if 语句中断,因此请在 if 语句开始之前声明它
message = 'curse'
badwords = ['curse'] #declare badwords here
if False:
pass
elif message in badwords: # iterate your message.content over the badwords list
print(True)