summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortim b <timb@camcompu.home>2010-04-06 19:35:51 -0700
committertim b <timb@camcompu.home>2010-04-06 19:35:51 -0700
commit21c4780566e1b350d4ff0dc6b260af14d29e1ef8 (patch)
tree2815c31f627381b77233ec6997c43bf82cb3e89a
parent7114b29dca66ac9032a74255fa9c7bb37e333fdc (diff)
committing stuff so i can merge
-rw-r--r--src/site.clj61
1 files changed, 29 insertions, 32 deletions
diff --git a/src/site.clj b/src/site.clj
index eb6d153..9759462 100644
--- a/src/site.clj
+++ b/src/site.clj
@@ -118,7 +118,7 @@
(defn add-message [msg room]
(alter (room :messages) (swap cons) msg))
-;; Output
+;; Logging
; is there a better way to do this or am i insane for introducing state? just wanna do
; (let [log (debug-log)]
@@ -144,22 +144,11 @@
(.add log log-string)
ret)))))
-;(defn log-time [log f & args]
-; (let [start (.getTime (new Date))]
-; (let [ret (apply f args)]
-; (log (str f ": " (- (.getTime (new Date)) start) " msecs" ))
-; ret)))
-
+;; Output
(defn strip-empty-vals [m]
(into {} (filter (fn [[k v]] (non-empty-string? v)) m)))
-(defn name-if-possible [x]
- (if
- (or (keyword? x) (symbol? x))
- (name x)
- (str x)))
-
(declare stringify-and-escape)
(defn escape-html-deep [o]
(if (map? o)
@@ -201,6 +190,7 @@
(let [m {"users" (prepare-user-list room)
"messages" (map process-message-for-json
(new-messages room since))}
+
topic @(room :topic)]
(if topic
(assoc m "topic" topic)
@@ -244,6 +234,7 @@
LIMIT ? OFFSET ?")]
(do-select [query nick *dumps-per-page* offset]))))
+
(defn fetch-public-message-by-id [id]
(let [query (str "SELECT m.content, m.created_on, m.user_id, u.nick, u.avatar
FROM messages m, users u, rooms r
@@ -290,10 +281,10 @@
(defn session-assoc-from-db
[user-info]
(session-assoc :user_id (user-info :user_id)
- :nick (user-info :nick)
- :is_admin (user-info :is_admin)
- :avatar (user-info :avatar)
- :password_login true))
+ :nick (user-info :nick)
+ :is_admin (user-info :is_admin)
+ :avatar (user-info :avatar)
+ :password_login true))
;; login-token functions
@@ -376,16 +367,17 @@
(defn profile [session profile-nick offset]
(if-let [user-info (fetch-nick profile-nick)]
- (let [nick (session :nick)
+ (let [st (fetch-template "profile" session)
+ nick (session :nick)
logger (make-time-logger)
is-home (and nick (= nick profile-nick))
has-avatar (non-empty-string? (user-info :avatar))
offset (maybe-parse-int offset 0)
dump-offset (* offset *dumps-per-page*)
- dumps (fetch-messages-by-nick profile-nick true dump-offset)
- dump-count (logger count-messages-by-nick profile-nick true)
- st (fetch-template "profile" session)
- dumps (to-array (map process-message-for-output dumps))]
+ raw-dumps (logger tags/fetch-dumps-by-nick profile-nick true (+ 1 *dumps-per-page*) dump-offset)
+ dumps (map tags/add-favorited-flag (take *dumps-per-page* raw-dumps) (repeat session))
+ dumps (map tags/remove-tags-for-output dumps)
+ dumps (logger doall (map process-message-for-output dumps))]
(do
(.setAttribute st "is_home" is-home)
(doseq [a [:nick :avatar :contact :bio]]
@@ -394,7 +386,7 @@
(if (non-empty-string? v) (escape-html v)))))
(if (> (count dumps) 0)
(.setAttribute st "dumps" dumps))
- (if (< (+ dump-offset *dumps-per-page*) dump-count)
+ (if (> (count raw-dumps) *dumps-per-page*)
(.setAttribute st "next" (inc offset)))
(if (not= offset 0)
(.setAttribute st "prev" (max (dec offset) 0)))
@@ -402,7 +394,6 @@
(.toString st)))
(resp-error "NO_USER")))
-
(defn update-user-db [user-id attr val]
(with-connection *db*
(update-values "users" ["user_id = ?" user-id] {attr val})))
@@ -577,10 +568,10 @@
(let [now (System/currentTimeMillis)
nick (session :nick)
st (fetch-template template session)
- message-list (to-array
- (map process-message-for-output
- ; TODO: remove db query
- (reverse (fetch-messages-by-room (room :room_id) false))))]
+ ; TODO: remove db query
+ message-list (reverse (tags/fetch-dumps-by-room (room :room_id) false))
+ message-list (map tags/add-favorited-flag message-list (repeat session))
+ message-list (to-array (map process-message-for-output message-list))]
(if nick
(dosync
(login-user (user-struct-from-session session) room)))
@@ -696,10 +687,10 @@
dump-offset (* offset *dumps-per-page*)
image-only (and (not (room :admin_only))
(not= (params :show) "all"))
- raw-dumps (logger tags/fetch-messages-with-tags-by-room (room :room_id) image-only (+ 1 *dumps-per-page*) dump-offset)
+ raw-dumps (logger tags/fetch-dumps-by-room (room :room_id) image-only (+ 1 *dumps-per-page*) dump-offset)
dumps (map tags/add-favorited-flag (take *dumps-per-page* raw-dumps) (repeat session))
- json-tags (for [dump dumps :when (not (empty? (dump :tags)))]
- (json-str {"id" (dump :message_id) "tags" (dump :tags) }))
+;; json-tags (for [dump dumps :when (not (empty? (dump :tags)))]
+;; (json-str {"id" (dump :message_id) "tags" (dump :tags) }))
dumps (map tags/remove-tags-for-output dumps)
dumps (logger doall (map process-message-for-output dumps))]
(if (> (count raw-dumps) *dumps-per-page*)
@@ -707,7 +698,7 @@
(if (not= offset 0)
(.setAttribute st "prev" (max (dec offset) 0)))
(.setAttribute st "dumps" dumps)
- (.setAttribute st "json_tags" json-tags)
+;; (.setAttribute st "json_tags" json-tags)
(.setAttribute st "roomkey" (room :key))
(.setAttribute st "roomname" (room :name))
(.setAttribute st "debug_log_items" (logger))
@@ -845,6 +836,10 @@
(GET "/favicon.ico" (serve-static "static" "favicon.ico"))
(GET "/u/:nick" (profile session (params :nick) "0"))
(GET "/u/:nick/" (profile session (params :nick) "0"))
+ (GET "/u/:nick/tag/:tag" ("nuthin yet"))
+ (GET "/u/:nick/tag/:tag/:offset" ("nuthin yet"))
+ (GET "/u/:nick/favorites" ("nuthin yet"))
+ (GET "/u/:nick/favorites/:offset" ("nuthing yet"))
(GET "/u/:nick/:offset" (profile session
(params :nick)
(params :offset)))
@@ -857,6 +852,8 @@
(GET "/chat/:t" (no-cache (validated-chat session "dumpfm" (-> request :route-params :t))))
(GET "/browser" (browser session))
(GET "/refresh" (validated-refresh session params))
+ (GET "/tag/:tag" ("nuthin yet"))
+ (GET "/tag/:tag/:offset" ("nuthin yet"))
(POST "/cmd/tag/add" (validated-add-tag session params))
(POST "/cmd/tag/rm" (validated-remove-tag session params))
(GET "/log" (validated-log session "dumpfm" "0" params))