如果自定义单词有绕过过滤器的符号,如何过滤自定义单词
How to filter custom words if they have symbols to bypass filter
我正在尝试制作一个过滤不良词的不和谐机器人
(韩语)
我试着做了一个,但每个人都通过添加特殊字符来绕过它们,如果 cat 这是一个坏词,他们说 ca!t 绕过过滤器
我该如何阻止它?
我试过亵渎过滤器,但我对韩语字符不满意
Badwords=["cat","dog"]
replacement="***"
#message.content it's the string!
for s in Badwords:
if (s in str(message.content)):
if (config['SETTINGS']['MODE']=="REPLACE"):
fixed=str(message.content)
for bad in Badwords:
fixed=fixed.replace(bad, replacement)
await message.channel.send(message.author.name+":"+fixed)
await message.delete()
else:
await message.delete()
return
如果您键入 cat,它将过滤并替换为 *** 或防御设置,它应该删除有效的消息,但如果您键入 ca!t 或 ca@t,它将绕过过滤器 我该如何停止它?
我认为对消息中两个字符串之间的每个 space 使用 for 循环会有所帮助。现在你正在检查列表中的每个坏词,以及消息中的每个词,这是非常奇怪和糟糕的方式。
我建议你列一个特殊字符列表,先把它们过滤掉,然后将消息中由白色 spaces 分隔的剩余字符串与 BadWords 列表进行比较,如果找到任何单词,你可以将其替换为星星。
如果你想找回你删除的特殊字符,这将是一个非常复杂的代码。我会尽可能保持轻便。
我正在尝试制作一个过滤不良词的不和谐机器人 (韩语) 我试着做了一个,但每个人都通过添加特殊字符来绕过它们,如果 cat 这是一个坏词,他们说 ca!t 绕过过滤器 我该如何阻止它?
我试过亵渎过滤器,但我对韩语字符不满意
Badwords=["cat","dog"]
replacement="***"
#message.content it's the string!
for s in Badwords:
if (s in str(message.content)):
if (config['SETTINGS']['MODE']=="REPLACE"):
fixed=str(message.content)
for bad in Badwords:
fixed=fixed.replace(bad, replacement)
await message.channel.send(message.author.name+":"+fixed)
await message.delete()
else:
await message.delete()
return
如果您键入 cat,它将过滤并替换为 *** 或防御设置,它应该删除有效的消息,但如果您键入 ca!t 或 ca@t,它将绕过过滤器 我该如何停止它?
我认为对消息中两个字符串之间的每个 space 使用 for 循环会有所帮助。现在你正在检查列表中的每个坏词,以及消息中的每个词,这是非常奇怪和糟糕的方式。
我建议你列一个特殊字符列表,先把它们过滤掉,然后将消息中由白色 spaces 分隔的剩余字符串与 BadWords 列表进行比较,如果找到任何单词,你可以将其替换为星星。 如果你想找回你删除的特殊字符,这将是一个非常复杂的代码。我会尽可能保持轻便。