Explorar el Código

google search fixes

Innocenty Enikeew hace 9 años
padre
commit
4f1d98fe6b
Se han modificado 2 ficheros con 6 adiciones y 3 borrados
  1. 4 2
      google.lisp
  2. 2 1
      utils.lisp

+ 4 - 2
google.lisp

@@ -1,10 +1,11 @@
 (in-package #:chatikbot)
 
-(defparameter +google-search-url+ "https://www.google.com/search")
+(defparameter +google-search-url+ "http://www.google.com/search")
 
 (defun google-search (query)
   (loop for result across (clss:select "ol > div" (xml-request +google-search-url+
                                                                :parameters (list (cons "q" query))))
+     when (select-text "cite" result)
      collect (list
               (cons :url (select-text "cite" result))
               (cons :title (select-text "h3" result))
@@ -18,4 +19,5 @@
                           (format nil "[~A](~A)~@[~%   ~A~]"
                                   (aget :title result)
                                   (aget :url result)
-                                  (substitute #\Space #\Newline (aget :desc result)))))))
+                                  (replace-all (aget :desc result)
+                                               '(#\Newline) ""))))))

+ 2 - 1
utils.lisp

@@ -135,7 +135,8 @@ is replaced with replacement."
   (nreverse (org.shirakumo.plump.dom::get-elements-by-tag-name node tag)))
 
 (defun select-text (selector node)
-  (string-trim '(#\Newline #\Space #\Return) (plump:text (elt (clss:select selector node) 0))))
+  (ignore-errors
+    (string-trim '(#\Newline #\Space #\Return) (plump:text (elt (clss:select selector node) 0)))))
 
 ;; JSON processing
 (defun json-request (url &key (method :get) parameters (object-as :alist))