Project description

This library is intended to encapsulate the IRC protocol at a quite
low level. It provides an event-driven IRC client framework. It has
a fairly thorough support for the basic IRC protocol, CTCP and DCC
connections.

In order to understand how to make an IRC client, I’m afraid you more
or less must understand the IRC specifications. They are available
here:

Data is not written asynchronously to the server (and DCC peers),
i.e. the write() may block if the TCP buffers are stuffed.

Like most projects, documentation is lacking…

Unfortunately, this library isn’t as well-documented as I would like
it to be. I think the best way to get started is to read and
understand the example program irccat, which is included in the
distribution.

The following files might be of interest:

irc/client.py

The library itself. Read the code along with comments and
docstrings to get a grip of what it does. Use it at your own risk
and read the source, Luke!

irc/bot.py

An IRC bot implementation.

Example scripts in the scripts directory:

irccat

A simple example of how to use the IRC client. irccat reads text from
stdin and writes it to a specified user or channel on an IRC
server.

irccat2

The same as above, but using the SimpleIRCClient class.

servermap

Another simple example. servermap connects to an IRC server,
finds out what other IRC servers there are in the net and prints
a tree-like map of their interconnections.

testbot

An example bot that uses the SingleServerIRCBot class from
irc.bot. The bot enters a channel and listens for commands in
private messages or channel traffic. It also accepts DCC
invitations and echos back sent DCC chat messages.

dccreceive

Receives a file over DCC.

dccsend

Sends a file over DCC.

NOTE: If you’re running one of the examples on a unix command line, you need to escape the # symbol in the channel. For example, use #test instead of #test.