在python的IRC库

时间:2016-06-30 07:20:21

标签: python bots irc

我正在尝试扩展此IRC library here附带的示例机器人。我已经重新编写了所谓的机器人here的代码。

我的问题是我不太明白需要修改什么才能让机器人响应事件,比如收到消息 - 我没有看到事件调度程序。

我能做的是

bot = irc.bot.SingleServerIRCBot(server_list = [('irc.whatever.net.', 6667)],realname = 'irclibbot',nickname = 'irclibbot',)
bot.start()

它运行良好 - 连接到网络和所有这一切,但它没有做任何事情。甚至不响应像VERSION和PING这样的基本CTCP事件。

这是如何运作的?

1 个答案:

答案 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_privmsgon_part等。

Here您可以找到支持的事件的参考。