[manpage_begin irc n 0.2]
[comment {-*- tcl -*- doctools manpage}]
[moddesc {Low Level Tcl IRC Interface}]
[titledesc {Create IRC connection and interface.}]
[require Tcl]
[require irc [opt 0.2]]
[description]
This package provides low-level commands to deal with the IRC protocol
(Internet Relay Chat) for immediate and interactive multi-cast
communication.
[para]
[list_begin definitions]
[call [cmd ::irc::connection] [arg hostname]]
The command creates a new object to deal with an IRC connection.
Creating this IRC object does not automatically create the network
connection. It returns a new irc namespace command which can be used
to interact with the new IRC connection.
[call [cmd ::irc::config] [arg key] [arg value]]
Sets configuration [arg key] to [arg value]. Currently, the only
config key defined is the boolean flag [strong debug] which, when
turned on, makes [package irc] print more information about what is
going on.
[list_end]
[section {Per-connection Commands}]
[para]
In the following list of available connection methods [arg net]
represents a connection command as returned by
[cmd ::irc::connection].
[list_begin definitions]
[call [arg net] [method registerevent] [arg event] [arg script]]
Registers a callback handler for the specific event. Events available
are those described in the IRC RFC: 1459. In addition, there are
several other events defined. [strong defaultcommand] adds a command
that is called if no other callback is present. [strong EOF] is
called if the connection signals an End of File condition.
[arg script] is executed in the connection namespace, which can take
advantage of several commands (see [sectref {Callback Commands}]
below) to aid in the parsing of data.
[call [arg net] [method connect]]
This causes the socket to be established. [cmd ::irc::connection]
created the namespace and the commands to be used, but did not
actually open the socket. This is done here.
[call [arg net] [method user] [arg username] [arg localhostname] [arg userinfo]]
Sends USER command to server. [arg username] is the username you want
to appear. [arg localhostname] is the name of your server, and
[arg userinfo] is a short description of who you are.
[call [arg net] [method nick] [arg nick]]
NICK command. [arg nick] is the nickname you wish to use for the
particular connection.
[call [arg net] [method ping]]
PING the IRC server.
[call [arg net] [method join] [arg channel]]
[arg channel] is the IRC channel to join. IRC channels typically
begin with a hashmark ("#").
[call [arg net] [method part] [arg channel]]
Makes the client leave [arg channel].
[call [arg net] [method privmsg] [arg target] [arg message]]
Sends [arg message] to [arg target], which can be either a channel, or
another user, in which case their nick is used.
[call [arg net] [method send] [arg text]]
Sends [arg text] to the IRC server.
[list_end]
[section {Callback Commands}]
[para]
These commands can be used within callbacks
[list_begin definitions]
[call [cmd who] [opt [strong address]]]
Returns the nick of the user who performed a command. The optional
[strong address] keyword causes the command to return the user in the
format "username@address".
[call [cmd action]]
Returns the action performed, such as KICK, PRIVMSG, MODE, etc...
Normally not useful, as callbacks are bound to a particular event.
[call [cmd target] [opt [arg index]]]
Returns the target of a particular command, such as the channel or
user to whom a PRIVMSG is sent. In the case of multiple targets, the
optional [arg index] argument may be used to specify which one to
return. The default is 0.
[call [cmd msg]]
Returns the message portion of the command (the part after the :).
[list_end]
[see_also {rfc 1459}]
[keywords irc chat]
[manpage_end]