我现在正在尝试构建一个非常简单的 irc 机器人,但我的机器人似乎不会加入频道。有人可以指出以下代码有什么问题:
from twisted.internet import reactor, protocol
from twisted.words.protocols import irc
class IRCProtocol(irc.IRCClient):
nickname = "botnick"
def connectionMade(self):
print 'connectionMade!'
def signedOn(self):
print 'Signed On to server'
self.join(self.factory.channels)
print 'Joined channel'
self.say(self.factory.channels, "hello", 1024)
class IRCFactory(protocol.ClientFactory):
protocol = IRCProtocol
channels = "#testingircbot"
def clientConnectionFailed(self, connector, reason):
print "Connection failed because of %s" % reason
reactor.stop()
def clientConnectionLost(self, connector, reason):
print "Connection lost: %s" % reason
connector.connect()
if __name__ == "__main__":
host, port = "irc.freenode.net", 6667
fact = IRCFactory()
reactor.connectTCP(host, port, fact)
reactor.run()
这是我运行脚本时的输出:
connectionMade!
Connection lost: [Failure instance: Traceback (failure with no frames): <class 'twisted.internet.error.ConnectionDone'>: Connection was closed cleanly.
]
connectionMade!
Connection lost: [Failure instance: Traceback (failure with no frames): <class 'twisted.internet.error.ConnectionDone'>: Connection was closed cleanly.
]
connectionMade!
Connection lost: [Failure instance: Traceback (failure with no frames): <class 'twisted.internet.error.ConnectionDone'>: Connection was closed cleanly.
]