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

これは、残念ながら機能しなかった 1 つのみです。


編集:

これは私の新しいコードです。エラー メッセージなしで実行されますが、思ったように機能しません。

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 に答える