anchor.diff:  
   (defun drakma-utf8 (url &rest params)
     (apply #'drakma:http-request url :external-format-in :utf-8 :external-format-out :utf-8 :user-agent :chrome :preserve-uri T params))
  +
  +(defun trunc-text (text &optional (maxchars 200))
  +  (if (> (length text) maxchars)
  +      (concatenate 'string (subseq text 0 maxchars) "...")
  +      text))
   
   (define-module search () ()
     (:documentation "Perform searches on various sites."))
  
positive.code: 
  (define-command (search google) (&rest query) (:documentation "Query google and return the first search result link.")
    (multiple-value-bind (url description) (google-term (format NIL "~{~a~^ ~}" query))
      (respond event "~a : ~a" url description)))
  
  (define-command (search image) (&rest query) (:documentation "Query google images and return the link to the first image in the results.")
    (setf query (format NIL "~{~a~^ ~}" query))
  
negative.code: (define-command (search cliki) (&rest query) (:documentation "Search CLiki.net, a wiki dedicated to open source lisp projects and such..")
    (setf query (format NIL "~{~a~^+~}" query))
    (let ((lquery:*lquery-master-document*))
      ($ (initialize (drakma-utf8 "http://www.cliki.net/site/search" :parameters `(("query" . ,query))) :type :HTML))
      (let ((results ($ "#content-area li")))
        (if results
            (let ((page (format NIL "http://www.cliki.net~a" ($ results (eq 0) "a" (attr :href) (node)))))
              ($ (initialize (drakma-utf8 page) :type :HTML))
              (cl-ppcre:register-groups-bind (html NIL) ("<div id=\"article\">(.*?)<" ($ "#article" (serialize) (node)))
                ($ (initialize (format NIL "<html><head></head><body>~a</body></html>" html) :type :HTML))
                (respond event "~a : ~a" page (trunc-text ($ "body" (text) (node))))))
            (respond event "Nothing found for ~a." query)))))
  
  (define-command (search clhs) (&rest query) (:documentation "Search the Common Lisp Hyperspec and return the short explanation.")
  