[Cl-irc-cvs] CVS update: cl-irc/example/advice cl-irc/example/cliki.lisp cl-irc/example/specbot.lisp
Brian Mastenbrook
bmastenbrook at common-lisp.net
Thu Aug 5 16:54:09 UTC 2004
Update of /project/cl-irc/cvsroot/cl-irc/example
In directory common-lisp.net:/home/bmastenbrook/cl-irc/example
Modified Files:
advice cliki.lisp specbot.lisp
Log Message:
um, not sure
Date: Thu Aug 5 09:54:09 2004
Author: bmastenbrook
Index: cl-irc/example/advice
diff -u cl-irc/example/advice:1.1 cl-irc/example/advice:1.2
--- cl-irc/example/advice:1.1 Tue Jul 27 13:39:42 2004
+++ cl-irc/example/advice Thu Aug 5 09:54:09 2004
@@ -95,4 +95,5 @@
(11963 . "It's easy to get the *wrong* answer in O(1) time.")
(11964
. "I guess this just goes to show that you can lead a horse to water, but you can't make him drink it.")
- (11999 . "You are a stupid asshole. Shut the fuck up."))
\ No newline at end of file
+ (11999 . "You are a stupid asshole. Shut the fuck up.")
+ (12000 . "Looking for a compiler bug is the second-to-last resort. The last resort is blaming bad RAM. It's never the correct hypothesis."))
Index: cl-irc/example/cliki.lisp
diff -u cl-irc/example/cliki.lisp:1.21 cl-irc/example/cliki.lisp:1.22
--- cl-irc/example/cliki.lisp:1.21 Wed Jul 28 08:45:42 2004
+++ cl-irc/example/cliki.lisp Thu Aug 5 09:54:09 2004
@@ -1,4 +1,4 @@
-;;;; $Id: cliki.lisp,v 1.21 2004/07/28 15:45:42 bmastenbrook Exp $
+;;;; $Id: cliki.lisp,v 1.22 2004/08/05 16:54:09 bmastenbrook Exp $
;;;; $Source: /project/cl-irc/cvsroot/cl-irc/example/cliki.lisp,v $
;;;; cliki.lisp - CLiki as an infobot; only works on SBCL.
@@ -487,42 +487,7 @@
channel))
(return-from cliki-lookup nil))
(or
- (let ((strings
- (or
- (aif
- (nth-value 1 (scan-to-strings "^(?i)(direct|tell|show|inform|teach|give)\\s+(\\S+)\\s+(about|on|in|to|through|for|some|)\\s*(.+)$" first-pass))
- (cons :forward it))
- (aif
- (nth-value 1 (scan-to-strings "^(?i)(look\\s+up\\s+|)\\s*(.+)\\s+(for|to|at)\\s+(\\S+)$" first-pass))
- (cons :backward it))
- )))
- (if strings
- (let* ((term (case (car strings)
- (:forward (elt (cdr strings) 3))
- (:backward (elt (cdr strings) 1))))
- (person (case (car strings)
- (:forward (elt (cdr strings) 1))
- (:backward (elt (cdr strings) 3))))
- (person (if (string-equal person "me")
- (or sender channel "you")
- person))
- (about (cliki-lookup term :sender sender
- :channel channel)))
- (if about
- (format nil "~A: ~A~A"
- person
- (if (scan "http:" about)
- (concatenate 'string
- (random-element
- '("have a look at"
- "please look at"
- "please see"
- "direct your attention towards"
- "look at"))
- " ")
- "")
- about)
- (setf should-send-cant-find nil)))))
+
(if (string-equal first-pass "help")
(if (should-do-lookup first-pass (or channel sender ""))
(progn
@@ -575,7 +540,42 @@
(let ((strs (nth-value 1 (scan-to-strings "^(?i)paste\\s+(\\d+)$" first-pass))))
(and strs
(lookup-paste (parse-integer (elt strs 0)))))
-
+ (let ((strings
+ (or
+ (aif
+ (nth-value 1 (scan-to-strings "^(?i)(direct|tell|show|inform|teach|give)\\s+(\\S+)\\s+(about|on|in|to|through|for|some|)\\s*(.+)$" first-pass))
+ (cons :forward it))
+ (aif
+ (nth-value 1 (scan-to-strings "^(?i)(look\\s+up\\s+|)\\s*(.+)\\s+(for|to|at)\\s+(\\S+)$" first-pass))
+ (cons :backward it))
+ )))
+ (if strings
+ (let* ((term (case (car strings)
+ (:forward (elt (cdr strings) 3))
+ (:backward (elt (cdr strings) 1))))
+ (person (case (car strings)
+ (:forward (elt (cdr strings) 1))
+ (:backward (elt (cdr strings) 3))))
+ (person (if (string-equal person "me")
+ (or sender channel "you")
+ person))
+ (about (cliki-lookup term :sender sender
+ :channel channel)))
+ (if about
+ (format nil "~A: ~A~A"
+ person
+ (if (scan "http:" about)
+ (concatenate 'string
+ (random-element
+ '("have a look at"
+ "please look at"
+ "please see"
+ "direct your attention towards"
+ "look at"))
+ " ")
+ "")
+ about)
+ (setf should-send-cant-find nil)))))
(if (scan "^(?i)hello(\\s|$)*" first-pass) "what's up?")
(if (scan "^(?i)hi(\\s|$)*" first-pass) "what's up?")
(if (scan "^(?i)yo(\\s|$)*" first-pass) "what's up?")
Index: cl-irc/example/specbot.lisp
diff -u cl-irc/example/specbot.lisp:1.6 cl-irc/example/specbot.lisp:1.7
--- cl-irc/example/specbot.lisp:1.6 Tue Jul 27 11:47:00 2004
+++ cl-irc/example/specbot.lisp Thu Aug 5 09:54:09 2004
@@ -1,4 +1,4 @@
-;;;; $Id: specbot.lisp,v 1.6 2004/07/27 18:47:00 bmastenbrook Exp $
+;;;; $Id: specbot.lisp,v 1.7 2004/08/05 16:54:09 bmastenbrook Exp $
;;;; $Source: /project/cl-irc/cvsroot/cl-irc/example/specbot.lisp,v $
;;;; specbot.lisp - an example IRC bot for cl-irc
@@ -129,8 +129,17 @@
(or *load-truename*
*default-pathname-defaults*)))))
+(defparameter *ppc-file*
+ (merge-pathnames "ppc-assem.lisp-expr"
+ (make-pathname
+ :directory
+ (pathname-directory
+ (or *load-truename*
+ *default-pathname-defaults*)))))
+
(defun start-specbot (nick server &rest channels)
(add-simple-alist-lookup *754-file* 'ieee754 "ieee754" "Section numbers of IEEE 754")
+ (add-simple-alist-lookup *ppc-file* 'ppc "ppc" "PowerPC assembly mnemonics")
(setf *nickname* nick)
(setf *connection* (connect :nickname *nickname* :server server))
(mapcar #'(lambda (channel) (join *connection* channel)) channels)
More information about the cl-irc-cvs
mailing list