所以目前我的Twitch頻道的這個機器人的問題是它阻止我在一個字符串中有多個單詞,而Authlist被作爲一個列表進行威脅。IRC bot,製作被禁止的單詞列表?
例如: 我想禁止單詞foo1,foo2,foo3和foo4,但是當它們全部在1個字符串中時,我需要在聊天中鍵入所有4個字符以便我的機器人能夠禁止該人,但如果他說四個字中的一個,就不會。
在此先感謝!要做到這一點
import socket
authlist = "patyyebot patyye"
banword = "foo1 foo2 foo3 foo4"
server = "patyye.jtvirc.com"
name = "patyyebot"
port = 6667
channel = "#patyye"
password = "xx"
irc = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
irc.connect((server, port))
irc.send("PASS " + password + "\n")
irc.send("NICK " + name + "\n")
irc.send("USER patyyebot patyyebot patyyebot :PatyYeBot\n")
irc.send("JOIN " + channel + "\n")
while True:
def message(msg):
irc.send("PRIVMSG " + channel + " :" + msg + "\n")
def ban(msg):
irc.send("PRIVMSG " + channel + " :/ban " + msg + "\n")
data = irc.recv(1204)
data = data.strip('\r\n')
senderusr = data.split(" ")
senderusr = senderusr[0]
senderusr = senderusr.split("!")
senderusr = senderusr[0]
senderusr = senderusr.strip(":")
print data
if data.find == "PONG" :
irc.send("PING")
if "!facebook" in data and senderusr in authlist:
message("@" + senderusr + ": Facebook is private")
if "!twitter" in data:
message("Follow PatyYe on Twitter: https://twitter.com/PatyYe")
if data in banword:
message("@" + senderusr + ": zei een gebanned woord! Ban uitgevoerd")
ban(senderusr)
這是一個小我很難準確地瞭解你的意思。 如果所有4個單詞出現或只有1個單詞足夠,您是否只想禁止? 你能改述你的標準嗎? – immortal
我想他想禁止任何一個單詞。你應該將字符串分割成一個數組(空格是分隔符)。然後遍歷數組並查找單詞。 – varesa