'''[http://tools.ietf.org/html/rfc1459%|%Internet Relay Chat Protocol]''', or '''IRC''', originally developed in Finland by Jarkko Oikarinen for use in the university network, is a protocol for interactive messenging between [Internet] users. ** Reference ** [http://www.irc.org/%|%irc.org]: the original home of IRC [http://www.irchelp.org/%|%irchelp.org]: the website of 30 or so volunteers who run the #IRChelp channel on EFnet and IRCnet [http://www.botlending.info/docs/translated/character_en.html%|%How to write eggdrop scripts that won't choke on special characters] ([https://web.archive.org/web/20130629014820/http://www.peterre.info/characters.html%|%alternate]), by Peterre: A valuable tutorial that's more rigorous than much IRC programming. See also [Writing Tcl scripts for eggdrop]. [http://ircdocs.horse/info/%|%Internet Relay Chat information]: A collection of useful links. ** Tools ** [Tcllib IRC]: [IRC Client Class]: ** Tcl channels on IRC ** '''http://freenode.net%|%freenode%|%''': #tcl employs [ijchain], which bridges the Tcler's Chat to IRC. Probably the best area for Tcl-related chat. (Unless you're talking [Eggdrop]). Also bridged to [Tcl Chatroom] '''http://efnet.net%|%EFnet%|%''': #eggtcl for eggdrop scripters, and #tcl (the intelligent crowd will wake up if you ask something interesting) '''http://dal.net%|%DALnet%|%''': #tcl (eggdrop), #tcltk '''http://quakenet.org%|%QuakeNet%|%''': #tcl ** Tcl IRC Servers ** [Tcl IrCd], by [Salvatore Sanfilippo]: a pure Tcl IRC server under the BSD license [SorIRCd], by ronsor: Another pure Tcl IRC server. Features "linking support that doesn't suck", K-lines, etc. Requires [Changes in Tcl/Tk 8.6%|%Tcl 8.6] or later. ** Tcl IRC Clients ** For some reason, Tcl/Tk seems to be quite popular among client authors - here are the ones I know about: [http://sourceforge.net/projects/irk/%|%IRK], by [Jacob Levy]: [Jacob Levy] 2002-09-29: just in the concept stage, I'd call this code Alpha quality. If someone wanted to pick up where I left off... :) **B** | What | BitchX | | Where | http://www.bitchx.org | | Description | ANSI color IRC client. | | Updated | 08/2002 | | Contact | edwards at bitchx dot org (Colten D. Edwards) | **C** | What | ChatIT | | Where | http://sourceforge.net/projects/chat-it/ | | Description | Cross platform IRC client that aims to support all IRC | | | protocols. Written in Tcl. | | Updated | 09/2001 | | Contact | See web site | SITE SAYS IN 02/2004: This Project Has Not Released Any Files Note however that many SF.net projects work directly from the CVS repository without regular releases occuring. In this particular case, they have put nothing in their CVS repository either. Too bad - appears to be [vaporware]. [http://cntbot.org/index.html.en%|%CNT Bot]: democracy software for digital activists building flat, horizontal networks. * Channel voting on operator commands * Configurable voting thresholds (i.e. second, majority, unanimous) * Creation of polls on arbitrary issues * Yes/No or multiple choice-based options for polls and votes * Election of instantly recallable delegates to send to other channels * Ability to hold 'plenaries' (a.k.a. conferences) consisting of all members of all invited channels or only delegates of each invited channel * Voting and passwords to control admission of new users into the channel * Concept of 'vote timeout' and 'default vote' to move decisions forward when some users are missing or away **D** | What | dirc | | Where | http://www.dircchat.com/ | | Description | ActiveX and windows based IRC client. | | Updated | 09/2002 | | Contact | info at algenta dot com (Kemal Hadimli) | . | What | DMAT | | Where | http://eazy-living.de/dmat-0.27/dmat-0.27.tar.bz2 | | Description | IRC proxy which allows you to detach from your session and | | | then reattach to the session using a different client or changing | | | client's host. Written in Tcl. | | | Current version 0.27. | | Updated | 10/2007 | | Contact | eazy at eazy-living dot de | **E** | What | Eembot | | Where | http://www.cs.vu.nl/%7Eerbruijn/ (dead link) | | Description | An IRC client with Tcl, terminal, X11, Windows 95 and WWW | | | interfaces. | | Updated | 04/1998 | | Contact | erbruijn at cs dot vu dot nl (Emiel Bruijntjes) | **G** | What | Go-IRC | | Where | No longer available for download from the author | | Description | A Tcl based IRC client, integrating Microsoft Internet Explorer, | | | Active-X, CTCP/2, etc. Designed for Windows 96/Windows NT 4.0. | | Updated | 07/1997 | | Contact | jamie at thehunters dot org (Jamie Hunter) | **H** | What | Hermes fserv | | Where | http://devel.degoeij.org/ | | Description | Hermes fserv is a Tcl script for use with the BitchX IRC client | | | to provide ftp-like access to local file archives. | | | Currently at version 0.1.6. | | Updated | 08/2001 | | Contact | j dot ellerbroek at student dot tudelft dot nl | **J** | What | JiMM | | Where | http://www.atlink.it/personal/avatar/Jnews.html (dead link) | | Description | Full featured Tcl/Tk Internet Relay Chat (IRC) client. | | Updated | 06/1997 | | Contact | dasnake at freenet dot hut dot fi | **K** | What | Kalich | | Where | http://kalich.sourceforge.net/ | | Description | Intelligent IRC bot written in Tcl. | | | Currently at version 0.05. | | Updated | 08/2001 | | Contact | l3ech at l3ech dot com | . | What | keirc | | Where | http://www.indonesia-undernet.org/keirc/ | | | http://user.cs.tu-berlin.de/%7Esalim/keirc/download/ | | Description | KDE based IRC (Internet Relay Chat) client program. Uses | | | Tcl 7.5 for scripting. Supports multiclient, multicolor and font, | | | DCC chat and file, small webserver, sound, ignore list, | | | communicates with Netscape, etc. | | Updated | 04/1999 | | Contact | sj039su at uni-duisburg dot de (Eko Bono) | **M** | What | MilkBot | | Where | http://www.cowofdoom.com/archive/pub/aim/milkbot.tar.gz | | | ftp://ftp.cowofdoom.com/pub/aim/milkbot.tar.gz | | Description | Eggdrop Tcl script that connects the Eggdrop IRC channel bot | | | to AIM. | | Updated | 07/1999 | | Contact | wwoods at wam dot umd dot edu (Will Woods) | **N** | What | NetPlug | | Where | http://www.box.eu.org/%7Edl/netplug.html | | Description | An extensible multi-connection, multi-protocol network client | | | program, written in pure Tcl/Tk. Currently supports an IRC client | | | and a GO game client, as well as a memory plugin, an async event | | | driven file pipeline and a TCP/IP gateway and multiplexer. | | | Can be the basis of a tool to debug various | | | networking services. Uses Tcl 7.5/Tk 4.1 and newer platforms. | | | Can run on Unix, Windows and Macintosh platforms. | | | Updates on a regular basis. V0.62 works with Tcl 8. | | Updated | 04/1997 | | Contact | L at demailly dot com (Laurent Demailly) | . | What | Netscape client Tcl Tclets (Demailly) | | Where | http://www.lyot.obspm.fr/%7Edl/Tclets/ | | Description | A go game, an adaptive optics simulation demo, | | | and an IRC Tclet are all available at this time. | | | are available at this time. | | Updated | 06/1997 | | Contact | L at demailly dot com (Laurent Demailly) | **P** | What | Progeny | | Where | http://www.fdcor.net/misc/progeny.shtml | | Description | Altenrative to Infobot, written solely in Tcl. | | Updated | 09/2001 | | Contact | concept at fdcor dot net | **Q** | What | QuIRC | | Where | http://quirc.sourceforge.net/ | | | http://quirc.org/ | | | http://quirc.org/quirc.tar.gz | | Description | X based IRC client with full Tcl/Tk scripting support. | | | Coded in C/C++ for speed and some advanced features. Supports | | | use of themes, and socks5. | | | Currently at version v0.9.82. | | Updated | 02/2000 | | Contact | hynato at quirc dot org | . | What | Quotesaq | | Where | http://rad.capecod.net/quote/ | | | http://rad.capecod.net/quote/Quotesaq-v2.1.tar.gz | | Description | Advanced quote system for Eggdrop IRC bots. Uses | | | Tcl script to interface to Perl scripts. | | Updated | 07/1999 | | Contact | RADKade1 at i-hate-the-internet dot com | **S** | What | savIRC | | Where | http://www.savirc.com/ | | Description | IRC client for both Linux and Windows, supporting multiple server | | | connections, SOCKS5 connections (Server __and__ DCC), CTCP, DCC, ignore | | | and notify lists, mIRC colors, nick completion, dedicated windows, logs, | | | custom popups, pre-defined events, Tcl/Tk scripting, and much more. | | | Currently at version 2.1.0. | | Updated | 03/2007 | | Contact | casey at savirc dot com | | Contact | phobie at savirc dot com | [Please do not use emailslinks, we get spam because of this, I remove the "@"'s for the other developers too... - phobie 05-05-23] **T** | What | [T2I] | . | What | TclBot | | Where | http://www.crosswinds.net/%7Eyeutham/ | | Description | Tcl IRC bot being developed. Curently at v0.4.0. | | | Provides structure for providing support functions such as uptime, | | | dictionary, fact triggers, fortune, etc. | | Updated | 07/1999 | | Contact | yeutham at crosswinds dot net | . | What | tcl file server | | Where | http://dejavo.n3.net/ | | Description | tclfserv is a IRC File server written in Tcl. | | | Currently at version 3.3-7. | | Updated | 08/2001 | | Contact | dejavo at PunkAss dot com | . | What | Tcldrop | | Where | http://www.tcldrop.us/ | | Description | The popular eggdrop bot reimplemented in pure Tcl (with | | | some additional features) providing better extensibility than | | | the original | | Updated | 11/2014 | | Contact | https://lists.sourceforge.net/lists/listinfo/tcldrop-devel | . | What | [tkirc] | | Where | http://www.north.de/%7Eatte/tkirc/ | | | http://www.leo.org/pub/comp/networking/irc/clients/unix/ircII/ | | | http://ftp.funet.fi/pub/unix/irc/ | | | http://www.tenebrous.com/ (???) | | Description | Graphical front end for ircII. Requires ircII and Tcl/Tk 8.x. | | | The tenebrous site is said to have a patch to allow you to change | | | the small max-topic length in tkIRC. | | | Currently at version 2.46. | | Updated | 02/2000 | | Contact | atte at gecko dot north dot de | . | What | Tomahawk | | Where | http://sf.net/projects/tomasoft/ | | Description | An effort to build a better Tcl-enabled IRC client. | | Updated | 08/2002 | | Contact | davygrvy at pobox dot com (David Gravereaux) | **X** | What | XiRCON | | Where | http://www.xircon.com/ | | | http://sourceforge.net/project/showfiles.php?group_id=1616&package_id=27045 | | Description | beta release IRC client for Windows 95/NT. The author | | | no longer is working on this application. | | | Contact #xircon on the efnet IRC network for help with the client. | | | D. Gravereaux has also provided the above 'hack' so that XiRCON | | | works with Tcl v8.1.0 and beyond. | | Updated | 08/2002 | | Contact | mhanson at servtech dot com (Mark Hanson) | | | davygrvy at pobox dot com (David Gravereaux) | **Z** | What | Zipper | | Where | http://users.vnet.net/ashman/zipper/ | | | http://users.vnet.net/ashman/zipper/zipper-1.62.tar.gz | | Description | Zipper is a Linux X/Tcl/Tk based IRC client. Supports many | | | functions including scripting, DCC Transfers and Chats, Colors, | | | sounds, and many others. | | Updated | 10/1998 | | Contact | wolfie at vnet dot net (Ash Bowers) | . | What | [Zircon] | | Where | http://catless.ncl.ac.uk/Programs/Zircon/ | | | ftp://catless.ncl.ac.uk/pub/zircon-1.18.256.tar.gz | | | ftp://coombs.anu.edu.au/pub/irc/tcl/ | | Description | A Tk interface to IRC. Does not permit commercial use. | | Updated | 06/2002 | | Contact | zircon-request at catless dot newcastle dot ac dot uk | | | Lindsay dot Marshall at newcastle dot ac dot uk | . | What | NeoSoft Tcl | | Where | ftp://ftp.procplace.com/pub/tcl/neosoft/neotcl/ | | Description | Tcl 7.6 and 8.0 set of commands and libraries providing | | | interfaces to disk-based btree and hashtables, | | | TCP/IP server-client objects, | | | along with examples of an IRC robot object, RFC931 authentication | | | object, support for WWW CGI scripts, WWW log file parsing. | | | Also, this includes file requestors, dialog boxes, pull-down menus, | | | class libraries for databases, listboxes, a Tk notepad, progress | | | notifiers, UDP-based object sharing, and more. Package includes | | | Tcl, Tk, itcl, Tcl-DP, tclX, color pixmap and GIF support, | | | and Expect. | | Updated | 10/1998 | | Contact | See web site | NOTE: [Karl Lehenbauer], Neosoft's Tcl champion, has moved on to procplace. Contact him regarding the status of this software. ---- | What | RoxIRC | | Where | http://roxirc.lighter.net/ | | Description | Another Tcl/Tk IRC client. BSD licensed. | | Updated | 11/2004 | | Contact | roxirc at lighter dot net | ---- | What | mbot | | Where | http://freshmeat.net/projects/mbot/ | | Description | C++ IRC bot with embedded Tcl scripting. | | | Partially compatible with eggdrop. | | | Currently at version 0.0. | | Updated | 07/2003 | | Contact | See web site | ---- The most popular IRC clients are probably [mirc] for windows and [xchat] for Linux. Although [XiRCON] is most definitely the most scriptable windows client. A XiRCON clone is being built :) Jump to [XiRCON-II] [steveo] offers that "the only decent *free* IRC client I have found for windows is roxirc". [[Trillian? GAIM?]] ** Misc ** [RS] tried this little example to post one message to #tcl: ====== proc IRC msg { set fd [socket irc.freenode.org 6667] puts $fd "NICK tcltest" puts $fd "USER tcltest 0 - :my real name" puts $fd "JOIN #tcl" puts $fd "PRIVMSG #tcl :$msg" close $fd } ====== ... and to write a clock bot (that posts my local time every hour) is as easy as this: ====== proc every {ms body} {eval $body; after $ms [info level 0]} every 3600000 {IRC [clock format [clock sec] -format %H:%M:%S]} ====== ---- [SS] 2004-12-05: The following is a minimal Tk IRC client (44 lines of code) with the hardcoded server/channel info to enter the Tclers chat: ====== package require Tk set ::server irc.freenode.org set ::chan #tcl text .text -width 50 -height 40 entry .cmd -width 50 grid .text grid .cmd bind .cmd usercommand proc send str { puts $::fd $str flush $::fd } set ::fd [socket $::server 6667] set ::me guest[expr {int(rand()*10000)}] send "NICK $::me" send "USER $::me 0 * :PicoIRC user" send "JOIN $::chan" fileevent $::fd readable recv proc recv {} { gets $::fd line puts $line if {[regexp {:([^!]*)![^ ].* +PRIVMSG ([^ ].*) +:(.*)} $line -> \ | | nick target msg]} { | .text insert end "<$nick> $msg\n" .text yview end } } proc usercommand {} { set cmd [.cmd get] .cmd delete 0 end .text insert end "<$::me> $cmd\n" .text yview end send "PRIVMSG $::chan :$cmd" } ====== See [picoIRC 0.2] for [RS]'s variation on the above. Or [minibot] <> Internet | Glossary | Application | Protocol