diff options
author | Matthias Andreas Benkard <code@mail.matthias.benkard.de> | 2012-04-14 23:41:35 +0200 |
---|---|---|
committer | Matthias Andreas Benkard <code@mail.matthias.benkard.de> | 2012-04-14 23:53:54 +0200 |
commit | 0d0f566f3e70214582ba0036f6fe53d141b60eb5 (patch) | |
tree | 8fa89977137c46b43a089a3547100ea9912ede0e /src/mulk/benki/lazychat.clj | |
parent | eb8fc654ec350d17f2ebc8164c9e6e70adc29d28 (diff) |
Refactor news feed generation.
Diffstat (limited to 'src/mulk/benki/lazychat.clj')
-rw-r--r-- | src/mulk/benki/lazychat.clj | 38 |
1 files changed, 13 insertions, 25 deletions
diff --git a/src/mulk/benki/lazychat.clj b/src/mulk/benki/lazychat.clj index ecc4ac1..b2cb128 100644 --- a/src/mulk/benki/lazychat.clj +++ b/src/mulk/benki/lazychat.clj @@ -4,7 +4,7 @@ [hiccup core page-helpers] [noir core] [noir-async core] - [mulk.benki auth config db util webutil] + [mulk.benki auth config db util webutil feed] ;; [clojure.core.match :only [match]] [hiccup.core :only [escape-html]] @@ -22,11 +22,9 @@ [aleph.http :as ahttp] [aleph.formats :as aformats] [clojure.data.json :as json] - [mulk.benki.xmpp :as xmpp]) - (:import [org.apache.abdera Abdera])) + [mulk.benki.xmpp :as xmpp])) -(defonce abdera (Abdera.)) (defonce lafargue-events (channel)) @@ -53,6 +51,9 @@ (defn start-xmpp-pump [] (receive-all lafargue-events push-message-to-xmpp)) +(defn fill-in-author-details [] + ) + (defn create-lazychat-message! [{content :content, visibility :visibility format :format, targets :targets, referees :referees, id :id}] @@ -78,10 +79,11 @@ [id (int target)])) (enqueue lafargue-events (with-meta - {:content content, :visibility visibility, - :format format, :targets targets, - :referees referees, :id id, - :author *user*, :date (java.util.Date.)} + (fill-in-author-details + {:content content, :visibility visibility, + :format format, :targets targets, + :referees referees, :id id, + :author *user*, :date (java.util.Date.)}) {:type ::lafargue-message})))))) (defn select-message [id] @@ -189,23 +191,9 @@ (let [last-updated (sql/with-query-results results ["SELECT MAX(date) AS maxdate FROM lazychat_messages"] (:maxdate (first results))) - feed (doto (.newFeed abdera) - (.setId (fmt nil "tag:~A,2012:/lafargue" - (:tag-base @benki-config))) - (.setTitle "Lafargue Lazy Chat") - (.setUpdated last-updated) - (.addLink (link :lafargue)))] - (doseq [item messages] - (doto (.addEntry feed) - (.setId (fmt nil "tag:~A,2012:/lafargue/~D" - (:tag-base benki-config) - (:id item))) - (.setSummaryAsHtml (sanitize-html (markdown->html (:content item)))) - (.setPublished (:date item)) - ;;(.setAuthor (fmt nil "~A ~A" (:first_name item) (:last_name item))) - ;;(.addLink (link :lafargue (:id item))) - )) - (.toString feed))))) + items (map #(with-meta % {:type ::lazychat-message}) messages)] + (generate-feed "Lafargue Lazy Chat" last-updated "lafargue" (link :lafargue) + items))))) (defpage "/lafargue/feed" {} |