| 1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head> |
|---|
| 2 | <link rel="stylesheet" href="style.css" type="text/css" /> |
|---|
| 3 | <title>cl-irc</title></head> |
|---|
| 4 | |
|---|
| 5 | |
|---|
| 6 | <body> |
|---|
| 7 | <div class="header"> |
|---|
| 8 | <h1>cl-irc 0.9.2</h1> |
|---|
| 9 | </div> |
|---|
| 10 | <div class="body"> |
|---|
| 11 | |
|---|
| 12 | <p>cl-irc is a Common Lisp IRC client library that |
|---|
| 13 | features (partial) DCC, CTCP and all relevant commands from the |
|---|
| 14 | IRC RFCs (<a |
|---|
| 15 | href="http://www.faqs.org/rfcs/rfc2810.html">RFC2810</a>, <a |
|---|
| 16 | href="http://www.faqs.org/rfcs/rfc2811.html">RFC2811</a> and <a |
|---|
| 17 | href="http://www.faqs.org/rfcs/rfc2812.html">RFC2812</a>). It |
|---|
| 18 | uses ASDF and has been tested mostly on SBCL but should work for |
|---|
| 19 | other implementations with little or no extra code.</p> |
|---|
| 20 | |
|---|
| 21 | <p>The code is released under an <a |
|---|
| 22 | href="http://common-lisp.net/websvn/filedetails.php?repname=cl-irc&path=%2Ftrunk%2FLICENSE&rev=0&sc=0" |
|---|
| 23 | >MIT-style license</a>. I need to mention that Jochen Schmidt laid the |
|---|
| 24 | groundwork for this library with his <a |
|---|
| 25 | href="http://www.sf.net/projects/weird-irc">Weird-IRC</a> IRC |
|---|
| 26 | client and that therefore some of the code is copyright him.</p> |
|---|
| 27 | |
|---|
| 28 | <h2>News</h2> |
|---|
| 29 | <div class="level"> |
|---|
| 30 | <ul> |
|---|
| 31 | <li>Version 0.9.2 released (SBCL destroy-thread deprecation)</li> |
|---|
| 32 | <li>Version 0.9.1 released (lots of fixes)</li> |
|---|
| 33 | <li>Version 0.8.1 released (small fixes: KICK message processing, channel mode tracking)</li> |
|---|
| 34 | <li>Version 0.8.0 released (user and channel mode tracking, characterset support on the irc network)</li> |
|---|
| 35 | <li>Version 0.7.0 released (RPL_ISUPPORT, many small tweaks and fixes)</li> |
|---|
| 36 | <li>Version 0.6.0 released (interim release while common-lisp.net was down)</li> |
|---|
| 37 | <li>Version 0.5.0 released (package rename and minor changes)</li> |
|---|
| 38 | <li>Version 0.4.0 released (some documentation, beginnings of a test suite, better performance)</li> |
|---|
| 39 | </ul> |
|---|
| 40 | </div> |
|---|
| 41 | |
|---|
| 42 | <h2>Features</h2> |
|---|
| 43 | <div class="level"> |
|---|
| 44 | <ul> |
|---|
| 45 | <li>implements all commands in the RFCs</li> |
|---|
| 46 | <li>extra convenience commands such as op/deop, ban, ignore, etc.</li> |
|---|
| 47 | <li>partial DCC SEND/CHAT support</li> |
|---|
| 48 | <li>event driven model with hooks makes interfacing easy</li> |
|---|
| 49 | <li>the user can keep multiple connections</li> |
|---|
| 50 | <li>all CTCP commands</li> |
|---|
| 51 | </ul> |
|---|
| 52 | </div> |
|---|
| 53 | |
|---|
| 54 | <h2>Installation</h2> |
|---|
| 55 | <div class="level"> |
|---|
| 56 | <p>If you have <a href="http://www.cliki.net/asdf-install"> |
|---|
| 57 | asdf-install</a>, just: |
|---|
| 58 | </p> |
|---|
| 59 | <pre>$ asdf-install cl-irc</pre> |
|---|
| 60 | |
|---|
| 61 | <p>cl-irc can manually be downloaded from here: |
|---|
| 62 | <tt><a href="http://common-lisp.net/project/cl-irc/cl-irc_latest.tar.gz"> |
|---|
| 63 | cl-irc_latest.tar.gz</a> |
|---|
| 64 | </tt>.</p> |
|---|
| 65 | |
|---|
| 66 | <p>There is also <a href="http://common-lisp.net/faq.shtml#checkout">anonymous Subversion |
|---|
| 67 | </a> and |
|---|
| 68 | <a href="http://common-lisp.net/websvn/listing.php?repname=cl-irc&path=%2F&sc=0"> |
|---|
| 69 | WebSVN |
|---|
| 70 | </a>. |
|---|
| 71 | </p> |
|---|
| 72 | </div> |
|---|
| 73 | |
|---|
| 74 | <h2>Contact</h2> |
|---|
| 75 | <div class="level"> |
|---|
| 76 | <p>Questions, feature requests, and bug-reports are welcome on |
|---|
| 77 | <tt><a href="mailto:cl-irc-devel@common-lisp.net"> |
|---|
| 78 | cl-irc-devel@common-lisp.net</a></tt>.</p> |
|---|
| 79 | </div> |
|---|
| 80 | |
|---|
| 81 | <h2>Sample usage</h2> |
|---|
| 82 | <div class="level"> |
|---|
| 83 | <pre> |
|---|
| 84 | * (require :cl-irc) |
|---|
| 85 | |
|---|
| 86 | * (in-package :irc) |
|---|
| 87 | |
|---|
| 88 | * (defvar connection (connect :nickname "mynick" |
|---|
| 89 | :server "irc.somewhere.org")) |
|---|
| 90 | |
|---|
| 91 | * (read-message-loop connection) |
|---|
| 92 | |
|---|
| 93 | ;; That's it. Interrupt the read-message-loop and do: |
|---|
| 94 | |
|---|
| 95 | * (join connection "#lisp") |
|---|
| 96 | |
|---|
| 97 | ;; etc. (look at command.lisp) to operate the library. After issuing |
|---|
| 98 | ;; a command, you need to get back on the feed: |
|---|
| 99 | |
|---|
| 100 | * (read-message-loop connection) |
|---|
| 101 | |
|---|
| 102 | ;; If you need to do something on every join, do: |
|---|
| 103 | |
|---|
| 104 | * (defun my-hook (message) |
|---|
| 105 | <do-something>) |
|---|
| 106 | |
|---|
| 107 | * (add-hook connection 'irc-join-message #'my-hook) |
|---|
| 108 | |
|---|
| 109 | ;; and it will be run next time the library receives an |
|---|
| 110 | ;; irc-join-message. For a full list of messages you can hook into, |
|---|
| 111 | ;; look at event.lisp. |
|---|
| 112 | |
|---|
| 113 | ;; Your connection object will get updated by the library with regards |
|---|
| 114 | ;; to users joining/parting channels, you joining/parting channels, |
|---|
| 115 | ;; etc. Look at protocol.lisp's connection object for slots and |
|---|
| 116 | ;; methods. |
|---|
| 117 | </pre> |
|---|
| 118 | </div> |
|---|
| 119 | |
|---|
| 120 | |
|---|
| 121 | </div> |
|---|
| 122 | </body></html> |
|---|