blob: 35f0861f87fefcf60d4abdbcb468e9868c751184 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
(ns mulk.benki.feed
(:refer-clojure)
(:use [clojure repl]
[mulk.benki util config webutil])
(:require [clojure.algo.monads :as m]
[clojure.string :as string]
[hiccup.core])
(:import [org.apache.abdera Abdera]))
(defonce abdera (Abdera.))
(defmulti feed-add-entry (fn [feed item] (type item)))
(defmethod feed-add-entry :mulk.benki.book_marx/bookmark [feed item]
(doto (.addEntry feed)
(.setId (fmt nil "tag:~A,2012:/marx/~D"
(:tag-base benki-config)
(:id item)))
(.setTitle (:title item))
(.setSummaryAsHtml (:html item))
;;(.setUpdated (:updated item))
(.setPublished (:date item))
;;(.setAuthor (fmt nil "~A ~A" (:first_name item) (:last_name item)))
;;(.addLink (link :marx (:id item)))
(.addLink (:uri item))))
(defmethod feed-add-entry :mulk.benki.lazychat/lazychat-message [feed item]
(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)))
))
(defn generate-feed [title last-updated tag link items]
(let [feed (doto (.newFeed abdera)
(.setId (fmt nil "tag:~A,2012:/~A"
(:tag-base @benki-config)
tag))
(.setTitle title)
(.setUpdated last-updated)
(.addLink link))]
(doall (map #(feed-add-entry feed %) items))
(.toString feed)))
|