Author: cludwig Date: Sat Jan 31 22:14:17 2009 New Revision: 9
Log: intermediate stage; need to create feed clients for import
Modified: trunk/src/atom/atom.lisp trunk/src/atom/read.lisp trunk/src/model/changes.lisp trunk/src/rest_interface/read.lisp
Modified: trunk/src/atom/atom.lisp ============================================================================== --- trunk/src/atom/atom.lisp (original) +++ trunk/src/atom/atom.lisp Sat Jan 31 22:14:17 2009 @@ -129,7 +129,9 @@ (:documentation "Register an entry for a given feed"))
(defmethod register-entry ((feed feed) (entry entry)) - (push entry (entries feed))) + (format t "feed: ~s; entry: ~s" feed entry) + (push entry (slot-value feed 'entries)) + (format t "entries of ~s: ~s" feed (slot-value feed 'entries)))
(defgeneric register-subfeed (feed subfeed) (:documentation "Register a subfeed for a given feed"))
Modified: trunk/src/atom/read.lisp ============================================================================== --- trunk/src/atom/read.lisp (original) +++ trunk/src/atom/read.lisp Sat Jan 31 22:14:17 2009 @@ -1,15 +1,15 @@ (in-package :atom)
-(defmacro parse-feed ((fragment-feed-string) &body make-entry) +(defmacro parse-feed ((feed-string feed-type) &body make-entry) "a convenience macro that captures key parsing elements for feeds. As body it takes the action to be performed on each entry in the feed (usually a register-entry statement)" `(let* ((feed-dom (dom:document-element - (cxml:parse-rod ,fragment-feed-string (cxml-dom:make-dom-builder)))) + (cxml:parse-rod ,feed-string (cxml-dom:make-dom-builder)))) (feed - (make-instance 'fragments-feed + (make-instance ,feed-type :id (xpath-fn-string (xpath-single-child-elem-by-qname feed-dom @@ -36,7 +36,7 @@
(defun parse-fragments-feed (fragment-feed-string) - (parse-feed (fragment-feed-string) + (parse-feed (fragment-feed-string 'fragments-feed) (register-entry feed (make-instance 'fragment-entry @@ -51,7 +51,7 @@ (xpath-single-child-elem-by-qname entry-elem *egovpt-ns* "TopicSI"))))))
(defun parse-snapshots-feed (fragment-feed-string) - (parse-feed (fragment-feed-string) + (parse-feed (fragment-feed-string 'snapshots-feed) (register-entry feed (make-instance 'snapshot-entry
Modified: trunk/src/model/changes.lisp ============================================================================== --- trunk/src/model/changes.lisp (original) +++ trunk/src/model/changes.lisp Sat Jan 31 22:14:17 2009 @@ -18,7 +18,7 @@ engine for this Topic Map" (let* ((tm (get-item-by-item-identifier tm-id :revision 0)) - (tops-and-assocs (union (topics tm) (associations tm))) + (tops-and-assocs (when tm (union (topics tm) (associations tm)))) (revision-set nil)) ;(format t "tops-and-assocs: ~a~&" (mapcan #'versions tops-and-assocs)) (dolist (vi (mapcan #'versions tops-and-assocs))
Modified: trunk/src/rest_interface/read.lisp ============================================================================== --- trunk/src/rest_interface/read.lisp (original) +++ trunk/src/rest_interface/read.lisp Sat Jan 31 22:14:17 2009 @@ -90,10 +90,12 @@ (let ((feed (read-snapshots-feed snapshot-feed-url)) (revision (get-revision))) + (format t "~s" (string-max (mapcar #'atom:updated (atom:entries feed)))) (let* - ((entry + ((most-recent-update (string-max (mapcar #'atom:updated (atom:entries feed)))) + (entry (find - (string-max (mapcar #'atom:updated (atom:entries feed))) + most-recent-update (atom:entries feed) :key #'updated :test #'string=)) (xtm-id (id entry))) ;;that *should* be the algorithm...