2017-01-21 9 views
1

Я закодировал этот python irc bot для подергивания, и у меня есть проблема: после 20 минут без сообщений для чтения, бот отправит в подсказку бесконечность бесполезных сообщений , и бот не может работать, даже если есть сообщения, которые нужно прочитать (и через несколько часов происходит сбой машинного оборудования ... из-за места, которое требуется в ОЗУ). я гнал сюда код ... Если вы знаете способ, чтобы преобразовать приемную линию к событию или что-то еще ...python: IRC bot invunteer infinity loop

-*- 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

я нашел себя, как остановить этот вопрос: после разделения линий, добавить elif "PING" in recu: s.send("PONG :" + recu.split(":")[1]) проблемы в том, что боты не отвечают на пинг из дергаться, так дергаться пнули его ...

 Смежные вопросы

  • Нет связанных вопросов^_^