No puede seleccionar más de 25 temas
Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.
|
- (asdf:load-system :drakma)
- (asdf:load-system :yason)
-
- (defun wiktionary-query (search-string)
- (let ((query-string (format nil "https://en.wikipedia.org/w/rest.php/v1/search/page?q=~A&limit=1" search-string)))
- (let ((http-result (handler-case (drakma:http-request query-string)
- (usocket:ns-host-not-found-error (c)
- (princ "Host not found.")
- nil))))
- (let ((json (yason:parse (coerce (map 'list #'code-char http-result) 'string))))
- (let ((results (gethash "pages" json)))
- (if (null results)
- (princ "No results found.")
- (let ((page-query-string (format nil "https://en.wikipedia.org/api/rest_v1/page/summary/~A" (gethash "title" (car results)))))
- (let ((page-result (handler-case (drakma:http-request page-query-string)
- (usocket:ns-host-not-found-error (c)
- (princ "Host not found when retreiving data.")
- nil))))
- (let ((json (yason:parse (map 'string #'code-char page-result))))
- (princ (gethash "extract" json)))))))))))
|