summaryrefslogtreecommitdiff
path: root/src/mulk/benki/lazychat.clj
diff options
context:
space:
mode:
authorMatthias Andreas Benkard <code@mail.matthias.benkard.de>2012-04-14 23:41:35 +0200
committerMatthias Andreas Benkard <code@mail.matthias.benkard.de>2012-04-14 23:53:54 +0200
commit0d0f566f3e70214582ba0036f6fe53d141b60eb5 (patch)
tree8fa89977137c46b43a089a3547100ea9912ede0e /src/mulk/benki/lazychat.clj
parenteb8fc654ec350d17f2ebc8164c9e6e70adc29d28 (diff)
Refactor news feed generation.
Diffstat (limited to 'src/mulk/benki/lazychat.clj')
-rw-r--r--src/mulk/benki/lazychat.clj38
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" {}