私は成功したが、私はIRCボットをコードしようとしていた。私は何かをしたいと思っています。コードはうまく動作しますが、ボットは2秒を追加するときにWhileループを使用してIRCからコマンドを読み込むため、ボットは接続しないため、time.sleep(秒)で接続します。それは私の2番目のループを読んで、応答にタイムリーに接続を一時停止します:PINGは切断しますか?私は検索していますが、私は何を試してみるべきか分からないので、私が探しているのは混乱しています。IRC botはメインループを中断することなくループを眠ります
スタックレス、マルチスレッド、サブプロセス。私はちょっと混乱するほど多くの結果があります。だから私は最高の方法が私はRSSボットしようとしているボットはうまく動作する場合、私はコマンドを使用して!rssのIRCチャネルでは、私はこれまで10分新しいものをチェックする必要がありますし、アップ。私はしばらくの間を追加する場合
#!/usr/bin/python
import socket, sys, string, time, feedparser, hashlib
port = 6667
nick = "RSSbot"
host = 'irc.server.com'
name = "RSSBOT"
channel = '#debug'
ident = 'rssbot'
irc = socket.socket()
irc.connect ((host, port))
irc.send ('NICK ' + nick + '\r\n')
irc.send ('USER ' + ident + ' ' + ident + ' ' + ident + ' :rssbot\r\n')
def readRss():
feedurl = feedparser.parse("http://api.twitter.com/1/statuses/user_timeline.rss?screen_name=username")
newest = feedurl['items'][0].title
newest = newest.replace("username:","")
msg = newest.split("http://")
title = msg[0]
url = msg[1]
url = "http://" + url
e = feedurl.entries[2]
threadurl = e.link
id = hashlib.md5(url + title).hexdigest()
irc.send ("PRIVMSG #debug :Tittle:%s\r\n" % newest)
irc.send ("PRIVMSG #debug :URL: %s\r\n" % url)
irc.send ("PRIVMSG #debug :MD5: %s\r\n" % id)
while 1:
data = irc.recv (1024)
print(data)
if data.find ('376') != -1:
irc.send('JOIN ' + channel + '\r\n')
if data.find ('PING') != -1:
irc.send('PONG ' + data.split() [1] + '\r\n')
if data.find ('!rss') != -1:
feedurl = feedparser.parse("http://api.twitter.com/1/statuses/user_timeline.rss?screen_name=username")
newest = feedurl['items'][0].title
newest = newest.replace("username:","")
msg = newest.split("http://")
title = msg[0]
url = msg[1]
url = "http://" + url
#e = feedurl.entries[2]
#threadurl = e.link
id = hashlib.md5(url + title).hexdigest()
irc.send ("PRIVMSG #debug :Tittle:%s\r\n" % newest)
irc.send ("PRIVMSG #debug :URL: %s\r\n" % url)
irc.send ("PRIVMSG #debug :MD5: %s\r\n" % id)
while true:
readRss()
time.sleep(300)
:真しばらく1内:ここ
は私のコードである私がする必要があるループ:time.sleep(300)中1でsleepコマンドの競合で私は毎分新しいフィードを確認することができるように何か似てください。何ができますか?
使用twisted.wordsを行います。 – geoffspear
ここには2番目のループはありません。 –