Browse Source

statistics added

master
Christian Mueller 14 years ago
parent
commit
ce4dc6ab2a
  1. 15
      src/NoteHub/storage.clj
  2. 2
      src/NoteHub/views/css_generator.clj
  3. 15
      src/NoteHub/views/pages.clj

15
src/NoteHub/storage.clj

@ -5,14 +5,25 @@
(def note "note") (def note "note")
(def views "views")
(defn- build-key [[year month day] title] (defn- build-key [[year month day] title]
(print-str year month day title)) (print-str year month day title))
(defn set-note [date title text] (defn set-note [date title text]
(redis/hset db note (build-key date title) text)) (let [key (build-key date title)]
(do
(redis/hset db views key 0)
(redis/hset db note key text))))
(defn get-note [date title] (defn get-note [date title]
(redis/hget db note (build-key date title))) (let [key (build-key date title)]
(do
(redis/hincrby db views key 1)
(redis/hget db note key))))
(defn get-views [date title]
(redis/hget db views (build-key date title)))
(defn note-exists? [date title] (defn note-exists? [date title]
(redis/hexists db note (build-key date title))) (redis/hexists db note (build-key date title)))

2
src/NoteHub/views/css_generator.clj

@ -40,7 +40,7 @@
(defn global-css [params] (defn global-css [params]
(let [theme (params :theme) (let [theme (params :theme)
theme (if theme (keyword theme) :default) theme (if theme (keyword theme) :default)
header-fonts (gen-fontlist (params :header-font) "Noticia Text" "PT Serif") header-fonts (gen-fontlist (params :header-font) "Noticia Text" "PT Serif" "Georgia")
text-fonts (gen-fontlist (params :text-font) "Georgia") text-fonts (gen-fontlist (params :text-font) "Georgia")
background (color theme :background) background (color theme :background)
foreground (color theme :foreground) foreground (color theme :foreground)

15
src/NoteHub/views/pages.clj

@ -88,6 +88,21 @@
(let [md-text (get-note [year month day] title)] (let [md-text (get-note [year month day] title)]
(if md-text md-text (get-page 404)))) (if md-text md-text (get-page 404))))
(defpage "/:year/:month/:day/:title/stat" {:keys [year month day title]}
(let [views (get-views [year month day] title)]
(if views
(common/layout "Statistics"
[:article
[:table {:style "width: 100%"}
[:tr
[:td "Published"]
[:td (interpose "-" [year month day])]]
[:tr
[:td "Article views"]
[:td views]]
]])
(get-page 404))))
; New Note Posting ; New Note Posting
(defpage [:post "/post-note"] {:keys [draft session-key session-value]} (defpage [:post "/post-note"] {:keys [draft session-key session-value]}
(let [valid-session (flash-get session-key) ; it was posted from a newly generated form (let [valid-session (flash-get session-key) ; it was posted from a newly generated form

Loading…
Cancel
Save