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> |
---|