1

我已经在 TwitchTV Python 聊天机器人上工作了一段时间,但我仍然在掌握 Python。

这似乎很简单,但这让我感到困惑,所以我决定问:

我目前正在使用 Twitch Chat 提取消息data = irc.recv

我想要做的是使用提取的数据并将其转换为字符串,这样我就可以使用检查消息中的大写字母str.isupper()

我已经尝试了几种方法;

data = irc.recv (4096)
msg = data()
capsTime = "30s"
str = msg
if str.isupper():
   message("[-] Woah! Hold back on the caps! (Timeout " + capsTime + ")")
   message("/timeout " + user + capsTime)
# variable "user" already defined

这只是一个,不幸的是没有工作。


编辑:

这是我的新代码,它运行时没有错误消息,但它没有按我的意愿运行;

while True:
   data = irc.recv (4096)
   user = data.split(':')[1]
   user = user.split('!')[0]
   caps = data.split(':')[0]
   capsmsg = str(data)

   print data
   if data.find('PING') != -1: 
       irc.send('PONG ' + data.split()[1] + '\r\n')

   if capsmsg.isupper():
       message("[-] Woah! Hold back on the caps, " + user + "! (Timeout 30s)")
       message("/timeout " + user + " 30s")

编辑2:

预期输出:如果在所有大写字母中找到一条消息,它将打印此消息并让用户超时: message("[-] Woah! Hold back on the caps, " + user + "! (Timeout 30s)")

当前输出:机器人不会选择消息或运行脚本代码。

4

1 回答 1

0

尝试这个:

data = irc.recv (4096)
# msg = data()
capsTime = "30s"
mystr = repr(data)
if mystr.isupper():
   message("[-] Woah! Hold back on the caps! (Timeout " + capsTime + ")")
   message("/timeout " + user + capsTime)
# variable "user" already defined

不要使用保留关键字。

于 2014-08-25T09:10:56.547 回答