irclink.py

The irclink module handles interaction with an IRC server on the protocol level. The implementation is based on the RFCs 2811 and 2812 and the ircd 2.10.3 source. This module is only intended for building clients, it misses functionality needed for servers.

Interface

Separate functions are defined for all types of messages from the server the irclink knows. This is the easiest way to obtain information embedded in plain text messages from the server.

Symbols

These symbols are mostly used for communicating states in messages generated by the irclink class. «Magic characters» are never returned.

User modes

away
User is away.
invisible
User is invisible.
local_oper
User is local operator.
op
User is channel operator
oper
User is IRC operator.
restricted
Restricted client.
serv_note
User receives server notices.
voice
User has voice.
wallops
User receives WALLOPS.
UMODES
A dictionary mapping the mode characters in for instance RPL_UMODEIS messages to the symbols defined in the module.

Channel modes

CHANNELMODES
Dictionary mapping between mode characters used in MODE-messages and symbold.
CHANNELMODES_wParams
List of modes that take parameters.

Ident

ident
Client has ident.
other_ident
Client has ident of type «other».
no_ident
Client has no ident.
i_line
Restricted line.
I_line
Normal line.
ident_types
Dictionary mapping between single character tokens in front of user names in prefixes and the items above.

Other

protocol
A dictionary mapping between msghandler-objects and command-strings.
LostConnectionError
Raised when having lost connection with server.

Classes

msghandler
msghandler-objects are wrapper-objects for parse-functions, they contain a given message's name.
re_tokens
re_tokens-objects are initialized with a regular expression and return the text matching the groups in the regular expression when called with a string as an argument.
irclink
Objects to wrap traffic to and from an IRC-server. Parses messages from it and contains methods to create and send well formed messages to the server.
throttler
throttler-objects serve to slow down the traffic from a program to the IRC-server to keep the traffic below the threshold for the client being disconnected. ircd implements more mechanisms for avoiding flooding than implemented in throttler, so even if the chance of a program being disconnected is low, it is there.

Functions

splitparams
Splits the parameters in an IRC-message into a list.
prefixsplit
Splits the prefix in an IRC-message into a list.
Too many individual parse functions
Most different things the server can throw at a client has individual parse functions. Hopefully it shouldn't be necessaru to touch these.

Last updated 2000-07-05.