使用python irc库定期执行任务

时间:2013-10-08 22:45:33

标签: python twisted irc

是否有办法自动执行周期性任务:例如使用python irclib twisted-based youmomdotcom python irc bot向其他用户或频道发送消息等。

基于 irclib 的irc客户端示例:

from irc import client
class OurIRCClient(client.SimpleIRCClient):
    def __init__(self):
        client.SimpleIRCClient.__init__(self)

import sys
client = OurIRCClient()

try:
    client.connect("irc.freenode.net", 6667, myUserId)
    print "connected to irc.freenode.net"
except:
    sys.exit(-1)
    "error: coouldn't connect to irc server"
client.connection.join("#django-hotclub")
client.start()

2 个答案:

答案 0 :(得分:2)

如果您使用基于Twisted的解决方案,则只需使用LoopingCall来安排要调用的周期性方法。

(如果你使用irclib,那么以一种在所有情况下都能正常工作的方式更难做到这一点,所以我不会在这里的答案中包含它。)

答案 1 :(得分:1)

正如Glyph指出的那样,我已经覆盖了irc客户端类的实例方法 connectionMade ,并使其使用LoopingCall

 def connectionMade(self):
        irc.IRCClient.connectionMade(self)
        task.LoopingCall(lambda : (self.msg(counterpartID, "hi there"))).start(5.0)