Update of /project/cl-irc/cvsroot/cl-irc/example In directory common-lisp.net:/tmp/cvs-serv10886/example
Modified Files: cliki.lisp eliza-rules.lisp Log Message: Armed Bear Common Lisp compatibility
Date: Wed Jun 9 11:54:25 2004 Author: bmastenbrook
Index: cl-irc/example/cliki.lisp diff -u cl-irc/example/cliki.lisp:1.8 cl-irc/example/cliki.lisp:1.9 --- cl-irc/example/cliki.lisp:1.8 Thu Jun 3 07:15:16 2004 +++ cl-irc/example/cliki.lisp Wed Jun 9 11:54:25 2004 @@ -1,4 +1,4 @@ -;;;; $Id: cliki.lisp,v 1.8 2004/06/03 14:15:16 bmastenbrook Exp $ +;;;; $Id: cliki.lisp,v 1.9 2004/06/09 18:54:25 bmastenbrook Exp $ ;;;; $Source: /project/cl-irc/cvsroot/cl-irc/example/cliki.lisp,v $
;;;; cliki.lisp - CLiki as an infobot; only works on SBCL. @@ -51,27 +51,6 @@ (or port-start (length url))))) (subseq url 7 host-end)))
-#+(or ccl allegro) -(defun socket-connect (host port) - (#+ccl ccl:make-socket - #+allegro socket:make-socket - :connect :active - :remote-host host - :remote-port port)) - -#+sbcl -(defun socket-connect (host port) - (let ((s (make-instance 'sb-bsd-sockets:inet-socket - :type :stream - :protocol :tcp))) - (sb-bsd-sockets:socket-connect s (car (sb-bsd-sockets:host-ent-addresses - (sb-bsd-sockets:get-host-by-name host))) port) - (sb-bsd-sockets:socket-make-stream s - :element-type 'character - :input t - :output t - :buffering :none))) - (defun url-connection (url) (let* ((host (url-host url)) (port (url-port url)) @@ -100,6 +79,11 @@ ;(format t "hi ~A~%" str) str)
+#-(or sbcl ccl) +(defmacro host-with-timeout (timeout &body body) + (declare (ignore timeout)) + `(progn ,@body)) + #+sbcl (defmacro host-with-timeout (timeout &body body) `(sb-ext:with-timeout ,timeout ,@body)) @@ -178,7 +162,10 @@ (symbol-macrolet ((it ,test)) ,else))))
-(defparameter *cliki-attention-prefix* "^minion[,:]\s+") +(defun make-cliki-attention-prefix (nick) + (format nil "^~A[,:]\s+" nick)) + +(defparameter *cliki-attention-prefix* "")
(defparameter *cliki-bot-help* "The minion bot supplies small definitions and performs lookups on CLiki. To use it, try ``minion: term?''. To add a term for IRC, try saying ``minion: add "term" as: definition'' or ``minion: alias "term" as: term''; otherwise, edit the corresponding CLiki page.")
@@ -259,6 +246,7 @@ (read-small-definitions) (setf *cliki-nickname* nick) (setf *cliki-connection* (connect :nickname *cliki-nickname* :server server)) + (setf *cliki-attention-prefix* (make-cliki-attention-prefix nick)) (mapcar #'(lambda (channel) (join *cliki-connection* channel)) channels) (add-hook *cliki-connection* 'irc::irc-privmsg-message 'msg-hook) (add-hook *cliki-connection* 'irc::irc-notice-message 'notice-hook)
Index: cl-irc/example/eliza-rules.lisp diff -u cl-irc/example/eliza-rules.lisp:1.3 cl-irc/example/eliza-rules.lisp:1.4 --- cl-irc/example/eliza-rules.lisp:1.3 Tue Jun 1 06:48:12 2004 +++ cl-irc/example/eliza-rules.lisp Wed Jun 9 11:54:25 2004 @@ -21,6 +21,7 @@ (((?* ?x) bot (?* ?y)) (|I'm| not a |bot.| I prefer the term |``electronically composed''.|))
+ #-armedbear ((seen ?x) (?x was last seen 5y6m14d32h43m10s |ago,| saying |"minion: when are you going to support seen?"|))
@@ -44,14 +45,17 @@
((not much) (good))
+ #-armedbear (((?* ?x) linux (?* ?y)) (I run on Crux Linux - |http://www.crux.nu/%7C))
+ #-armedbear (((?* ?x) crux (?* ?y)) (I like running on Crux Linux))
(((?* ?x) slackware (?* ?y)) (Slackware is nice but I like Crux)) + #-armedbear (((?* ?x) debian (?* ?y)) (|baah, use crux: http://www.crux.nu/%7C))
@@ -376,7 +380,7 @@ (superman) (bill clinton) (king kong) (me))
((what (?* ?x)) - (a |man, a plan, a canal: panama|) + (a |man, a plan, a canal - panama|) (a banana) (42))