From da44c7246490e3e3afc9c4e3607d6ea2813b0fbb Mon Sep 17 00:00:00 2001 From: christoph Date: Fri, 20 Feb 2009 01:08:48 +0100 Subject: Added a function "subscribe-feed" Unfortunately it is not working yet in all cases (see code) --- cljssss-g.clj | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/cljssss-g.clj b/cljssss-g.clj index 8313968..bdb8c17 100644 --- a/cljssss-g.clj +++ b/cljssss-g.clj @@ -91,6 +91,32 @@ {:feed id :entry entry-id})))))))) +;; system-wide subscription +;; ******* FIXME: Doesnt work when no feed was subscribed yet +(defn subscribe-to-feed [url] + (let [maybe-ret + (with-dbt + (if (sql/with-query-results + [exi] + ["SELECT id FROM feed WHERE uri=?" url] + (if exi + (second (first exi)) + nil)) + nil ;; do nothing, return nil + (let [free-id + (sql/with-query-results + [max-id] + ["SELECT MAX(id) FROM feed"] + (if max-id (+ (second (first max-id)) 1) 0))] + (sql/update-or-insert-values :feed + ["id = ?" free-id] + {:id free-id + :uri url}) + free-id)))] + (if maybe-ret + (fetch-feed maybe-ret)) + maybe-ret)) + (run-server {:port 8080} "/*" cljssss-g) -- cgit v1.2.3