logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

irc - Create IRC connection and interface.

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 connection

Keywords

       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

________________________________________________________________________________________________________________

See Also