irc - Create IRC connection and interface.
Contents
Bugs, Ideas, Feedback
This document, and the package it describes, will undoubtedly contain bugs and other problems. Please
report such in the category irc of the TcllibTrackers [http://core.tcl.tk/tcllib/reportlist]. Please
also report any ideas for enhancements you may have for either package and/or documentation.
When proposing code changes, please provide unifieddiffs, i.e the output of diff-u.
Note further that attachments are strongly preferred over inlined patches. Attachments can be made by
going to the Edit form of the ticket immediately after its creation, and then using the left-most button
in the secondary navigation bar.
Callback Commands
These commands can be used within callbacks
who ?address?
Returns the nick of the user who performed a command. The optional keyword address causes the
command to return the user in the format "username@address".
action Returns the action performed, such as KICK, PRIVMSG, MODE, etc... Normally not useful, as
callbacks are bound to a particular event.
target Returns the target of a particular command, such as the channel or user to whom a PRIVMSG is sent.
additional
Returns a list of any additional arguments after the target.
header Returns the entire event header (everything up to the :) as a proper list.
msg Returns the message portion of the command (the part after the :).
Category
Networking
tcllib 0.8.0 irc(3tcl)
Description
This package provides low-level commands to deal with the IRC protocol (Internet Relay Chat) for
immediate and interactive multi-cast communication.
::irc::config ?key? ?value?
Sets configuration ?key? to ?value?. The configuration keys currently defined are the boolean
flags logger and debug. logger makes irc use the logger package for printing error. debug
requires logger and prints extra debug output. If no ?key? or ?value? is given the current values
are returned.
::irc::connection
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. NOTE: the old form of the connection command,
which took a hostname and port as arguments, is deprecated. Use connect instead to specify this
information.
::irc::connections
Returns a list of all the current connections that were created with connectionKeywords
chat, irc
Name
irc - Create IRC connection and interface.
Per-Connection Commands
In the following list of available connection methods net represents a connection command as returned by
::irc::connection.
netregistereventeventscript
Registers a callback handler for the specific event. Events available are those described in RFC
1459 http://www.rfc-editor.org/rfc/rfc1459.txt. In addition, there are several other events
defined. defaultcmd adds a command that is called if no other callback is present. EOF is called
if the connection signals an End of File condition. The events defaultcmd, defaultnumeric,
defaultevent, and EOF are required. script is executed in the connection namespace, which can
take advantage of several commands (see CallbackCommands below) to aid in the parsing of data.
netgeteventeventscript
Returns the current handler for the event if one exists. Otherwise an empty string is returned.
neteventexistseventscript
Returns a boolean value indicating the existence of the event handler.
netconnecthostname ?port?
This causes the socket to be established. ::irc::connection created the namespace and the
commands to be used, but did not actually open the socket. This is done here. NOTE: the older
form of ´connect' did not require the user to specify a hostname and port, which were specified
with 'connection'. That form is deprecated.
netconfig ?key? ?value?
The same as ::irc::config but sets and gets options for the net connection only.
netloglevelmessage
If logger is turned on by config this will write a log message at level.
netlogname
Returns the name of the logger instance if logger is turned on.
netconnected
Returns a boolean value indicating if this connection is connected to a server.
netsockname
Returns a 3 element list consisting of the ip address, the hostname, and the port of the local end
of the connection, if currently connected.
netpeername
Returns a 3 element list consisting of the ip address, the hostname, and the port of the remote
end of the connection, if currently connected.
netsocket
Return the Tcl channel for the socket used by the connection.
netuserusernamelocalhostnamelocaldomainnameuserinfo
Sends USER command to server. username is the username you want to appear. localhostname is the
host portion of your hostname, localdomainname is your domain name, and userinfo is a short
description of who you are. The 2nd and 3rd arguments are normally ignored by the IRC server.
netnicknick
NICK command. nick is the nickname you wish to use for the particular connection.
netpingtarget
Send a CTCP PING to target.
netserverping
PING the server.
netjoinchannel ?key?
channel is the IRC channel to join. IRC channels typically begin with a hashmark ("#") or
ampersand ("&").
netpartchannel ?message?
Makes the client leave channel. Some networks may support the optional argument messagenetquit ?message?
Instructs the IRC server to close the current connection. The package will use a generic default
if no message was specified.
netprivmsgtargetmessage
Sends message to target, which can be either a channel, or another user, in which case their nick
is used.
netnoticetargetmessage
Sends a notice with message message to target, which can be either a channel, or another user, in
which case their nick is used.
netctcptargetmessage
Sends a CTCP of type message to targetnetkickchanneltarget ?message?
Kicks the user target from the channel channel with a message. The latter can be left out.
netmodetargetargs
Sets the mode args on the target target. target may be a channel, a channel user, or yourself.
nettopicchannelmessage
Sets the topic on channel to message specifying an empty string will remove the topic.
netinvitechanneltarget
Invites target to join the channel channelnetsendtext
Sends text to the IRC server.
netdestroy
Deletes the connection and its associated namespace and information.
See Also
rfc 1459
Synopsis
package require Tcl8.69
package require irc?0.8.0?::irc::config ?key? ?value?
::irc::connection::irc::connectionsnetregistereventeventscriptnetgeteventeventscriptneteventexistseventscriptnetconnecthostname ?port?
netconfig ?key? ?value?
netloglevelmessagenetlognamenetconnectednetsocknamenetpeernamenetsocketnetuserusernamelocalhostnamelocaldomainnameuserinfonetnicknicknetpingtargetnetserverpingnetjoinchannel ?key?
netpartchannel ?message?
netquit ?message?
netprivmsgtargetmessagenetnoticetargetmessagenetctcptargetmessagenetkickchanneltarget ?message?
netmodetargetargsnettopicchannelmessagenetinvitechanneltargetnetsendtextnetdestroywho ?address?
actiontargetadditionalheadermsg
________________________________________________________________________________________________________________
