2017-01-21 7 views
1

私はtwitchのpython irc botをコード化しました。問題があります: メッセージを読むことなく平均20分後にボットは無駄な無駄なメッセージを送ります、ボットは読み込みメッセージがあっても(そして数時間後には、ホストマシンがクラッシュする... RAMに保存されている場所のために)動作しません。 あなたがイベントや他の何かに受信ラインを変換する方法を知っていれば、私は... ...ここに助けをpython:IRC botボランティアの無限ループ

-*- coding: utf-8 -*- 
import socket 
import sys 
import time 

CHANNEL = "#twitch" #actually I tested my bot on an other channel, where I've the admins rights 
s = socket.socket() 

def connection(): 
    print("connecting...") 
    s.connect(("irc.chat.twitch.tv", 6667)) 
    print("identifing...") 
    s.send("PASS " + "oauth:*****************************" + "\r\n") #i censured for evident security reason 
    s.send("NICK " + "mistercraft" + "\r\n") 
    print("joining channel " + CHANNEL) 
    s.send("JOIN " + CHANNEL + "\r\n") 
    print("Connected") 

def send(Message): 
    s.send("PRIVMSG "+CHANNEL+" :"+ Message + "\r\n") 
    print("Sent : " + Message) 

connection() 
send("Hello world !!!") 

while 1: 

    text = "" 
    recu = s.recv(2040) #receive line, where there is the issue 
    if len(recu.split(":")) >= 3: 
     user = recu.split("!")[0] 
     user = user.split(":")[1] 
     for i in range(2, len(recu.split(":")), 1): 
      text = text + recu.split(":")[i] + ":" 
     print(user+" : "+text) 

    #Code here (like 'if' loops) 

おかげでコードをパット。

答えて

0

私はどのように問題を停止するために自分自身を発見した:

...分割ラインの後、問題がボットが攣縮からのpingに応答するので、彼を蹴っけいれんしていないということでした elif "PING" in recu: s.send("PONG :" + recu.split(":")[1])を追加