Simple IRC library

alex23 wuwei23 at gmail.com
Tue Aug 25 00:40:42 EDT 2009


devaru <ajoys... at gmail.com> wrote:
> I am new to Python language. I want to capture(either in database or a
> file) the conversation in IRC.
> Please suggest me some simple IRC library or code snippet for this.

I recommend the circuits[1] library, which contains a sample irc bot
[2]. You'll want to override the message method to do something with
the data captured.

    #!/usr/bin/env python

    from circuits import Component, Debugger
    from circuits.net.sockets import TCPClient, Connect
    from circuits.net.protocols.irc import IRC, Message, User, Nick

    class Bot(Component):

        def __init__(self, host, port=6667, channel=None):
            super(Bot, self).__init__(channel=channel)
            self += TCPClient(channel=channel) + IRC(channel=channel)
            self.push(Connect(host, port), "connect")

        def connected(self, host, port):
            self.push(User("test", host, host, "Test Bot"), "USER")
            self.push(Nick("test"), "NICK")

        def numeric(self, source, target, numeric, args, message):
            if numeric == 433:
                self.push(Nick("%s_" % self("getNick")), "NICK")

        def message(self, source, target, message):
            self.push(Message(source[0], message), "PRIVMSG")

    bot = Bot("irc.freenode.net", channel="bot") + Debugger()
    bot.run()


[1]: http://pypi.python.org/pypi/circuits
[2]: http://trac.softcircuit.com.au/circuits/browser/examples/ircbot.py



More information about the Python-list mailing list