git.fiddlerwoaroof.com
Raw Blame History
(in-package :alimenta.discover)

(define-lquery-function get-alternates (node)
  ($ (inline node) "link[rel=alternate]"
     (combine (attr "type") (attr "href"))))

(defun transform-nodes (feed-info-nodes)
  (map 'list (lambda (x) (cons (make-keyword (string-upcase (car x))) (cadr x)))
       feed-info-nodes))

(defgeneric discover-feed (doc))
(defmethod discover-feed ((doc string))
       (transform-nodes ($ (initialize doc) (get-alternates) (node))))
(defmethod discover-feed ((doc plump:node))
       (transform-nodes ($ (inline doc) (get-alternates) (node))))