我正在尝试扩展此IRC library here附带的示例机器人。我已经重新编写了所谓的机器人here的代码。
我的问题是我不太明白需要修改什么才能让机器人响应事件,比如收到消息 - 我没有看到事件调度程序。
我能做的是
bot = irc.bot.SingleServerIRCBot(server_list = [('irc.whatever.net.', 6667)],realname = 'irclibbot',nickname = 'irclibbot',)
bot.start()
它运行良好 - 连接到网络和所有这一切,但它没有做任何事情。甚至不响应像VERSION和PING这样的基本CTCP事件。
这是如何运作的?
答案 0 :(得分:1)
查看this example您需要做什么。
class TestBot(irc.bot.SingleServerIRCBot):
def __init__(self, channel, nickname, server, port=6667):
irc.bot.SingleServerIRCBot.__init__(self, [(server, port)], nickname, nickname)
def on_nicknameinuse(self, c, e):
c.nick(c.get_nickname() + "_")
def on_welcome(self, c, e):
c.join(self.channel)
def on_privmsg(self, c, e):
self.do_command(e, e.arguments[0])
定义自己继承自实际irc.bot.SingleServerIRCBot
类的类。然后,事件将自动绑定到名为on_'event'
的方法,如on_privmsg
,on_part
等。
Here您可以找到支持的事件的参考。