【发布时间】:2016-07-21 13:49:31
【问题描述】:
我目前正在为 Twitch.tv 开发 IRC 机器人,我想知道如何实现禁用词列表?这是我到目前为止所拥有的,由于我对 python 的了解有限,我感到很困惑。到目前为止,一切都运行良好,除了检查消息中是否包含禁用词。这是有问题的代码:
if bannedWords.split in message:
sendMessage(s, "/ban " + user)
break
我想检查一个列表,看看邮件是否包含列表中的任何内容?
bannedWords = ["badword1", "badword1"]
但我只是不确定..
import string
from Read import getUser, getMessage
from Socket import openSocket, sendMessage
from Initialize import joinRoom
s = openSocket()
joinRoom(s)
readbuffer = ""
bannedWords = ["badword1", "badword1"]
while True:
readbuffer = readbuffer + s.recv(1024)
temp = string.split(readbuffer, "\n")
readbuffer = temp.pop()
for line in temp:
print(line)
if "PING" in line:
s.send(line.replace("PING", "PONG"))
break
user = getUser(line)
message = getMessage(line)
print user + " typed :" + message
if bannedWords.split in message:
sendMessage(s, "/ban " + user)
break
提前致谢!!
【问题讨论】:
-
bannedWords 是你定义的禁用词列表吗?
-
只是我添加的单词。一开始我有点想慢慢来。最后,也许我可以添加一个命令将单词写入 .txt 然后读取它们?
-
您也忘记调用 split,您是在询问消息中是否包含对
str.split的引用 -
temp.pop()看起来也可能是一个问题区域...... -
必填链接:Scunthorpe Problem。仔细考虑您希望过滤系统有多严格,因为您最终可能会压制合法对话。