From ce4dc6ab2a1b61971b9c34708250e0ba3fb3c207 Mon Sep 17 00:00:00 2001 From: Christian Mueller Date: Sat, 9 Jun 2012 12:55:49 +0200 Subject: [PATCH] statistics added --- src/NoteHub/storage.clj | 15 +++++++++++++-- src/NoteHub/views/css_generator.clj | 2 +- src/NoteHub/views/pages.clj | 15 +++++++++++++++ 3 files changed, 29 insertions(+), 3 deletions(-) diff --git a/src/NoteHub/storage.clj b/src/NoteHub/storage.clj index 7fdbcd5..bf87cee 100644 --- a/src/NoteHub/storage.clj +++ b/src/NoteHub/storage.clj @@ -5,14 +5,25 @@ (def note "note") +(def views "views") + (defn- build-key [[year month day] title] (print-str year month day title)) (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] - (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] (redis/hexists db note (build-key date title))) diff --git a/src/NoteHub/views/css_generator.clj b/src/NoteHub/views/css_generator.clj index f89f53f..ad276a6 100644 --- a/src/NoteHub/views/css_generator.clj +++ b/src/NoteHub/views/css_generator.clj @@ -40,7 +40,7 @@ (defn global-css [params] (let [theme (params :theme) 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") background (color theme :background) foreground (color theme :foreground) diff --git a/src/NoteHub/views/pages.clj b/src/NoteHub/views/pages.clj index 095aafb..28d1ab5 100644 --- a/src/NoteHub/views/pages.clj +++ b/src/NoteHub/views/pages.clj @@ -88,6 +88,21 @@ (let [md-text (get-note [year month day] title)] (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 (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