summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorsostler <sbostler@gmail.com>2010-05-08 14:50:22 -0400
committersostler <sbostler@gmail.com>2010-05-08 14:50:22 -0400
commitd74dc8f94992e035a00f7d64a2191dbca480c489 (patch)
tree5f883659218889c321e4c91a996b424b274ff68d /src
parentd84dba44b743a7b347c0320e91d70295d406f5a9 (diff)
Fixed chat/log subdomain routing
Diffstat (limited to 'src')
-rw-r--r--src/site.clj67
1 files changed, 39 insertions, 28 deletions
diff --git a/src/site.clj b/src/site.clj
index cccfa97..be59e09 100644
--- a/src/site.clj
+++ b/src/site.clj
@@ -71,6 +71,11 @@
;; Room handling
+(def *default-room* "dumpfm")
+
+(defn default-room? [key]
+ (= (lower-case key) *default-room*))
+
(defn lookup-room [key]
(@rooms (lower-case key)))
@@ -592,9 +597,10 @@ ORDER BY msg_count DESC")
(.toString st)))
(defn validated-chat [session room-key template]
- (if (validate-room-access room-key session)
- (chat session (lookup-room room-key) template)
- (resp-error "UNKNOWN_ROOM")))
+ (let [room-key (if (= (lower-case room-key) "www") *default-room* room-key)]
+ (if (validate-room-access room-key session)
+ (chat session (lookup-room room-key) template)
+ (resp-error "UNKNOWN_ROOM"))))
(defn refresh [session params room]
(dosync
@@ -667,7 +673,7 @@ ORDER BY msg_count DESC")
;; TODO: make work for all rooms
(defn browser [session]
- (let [room (lookup-room "dumpfm")
+ (let [room (lookup-room *default-room*)
now (System/currentTimeMillis)
nick (session :nick)
st (fetch-template "browser" session)]
@@ -689,36 +695,40 @@ ORDER BY msg_count DESC")
;; Chat Log
(defn log [session room offset params]
- (let [st (fetch-template "log" session)
- logger (make-time-logger)
- offset (maybe-parse-int offset 0)
- dump-offset (* offset *dumps-per-page*)
- image-only (and (not (room :admin_only))
- (not= (params :show) "all"))
- raw-dumps (logger tags/fetch-dumps-by-room :room-id (room :room_id)
- :image-only image-only
- :amount (+ 1 *dumps-per-page*)
- :offset 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) }))
- dumps (map tags/remove-tags-for-output dumps)
- dumps (logger doall (map process-message-for-output dumps))]
+ (let [roomkey (room :key)
+ st (fetch-template "log" session)
+ logger (make-time-logger)
+ offset (maybe-parse-int offset 0)
+ dump-offset (* offset *dumps-per-page*)
+ image-only (and (not (room :admin_only))
+ (not= (params :show) "all"))
+ raw-dumps (logger tags/fetch-dumps-by-room :room-id (room :room_id)
+ :image-only image-only
+ :amount (+ 1 *dumps-per-page*)
+ :offset 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) }))
+ dumps (map tags/remove-tags-for-output dumps)
+ dumps (logger doall (map process-message-for-output dumps))]
(if (> (count raw-dumps) *dumps-per-page*)
(.setAttribute st "next" (inc offset)))
(if (not= offset 0)
(.setAttribute st "prev" (max (dec offset) 0)))
(.setAttribute st "dumps" dumps)
-;; (.setAttribute st "json_tags" json-tags)
- (.setAttribute st "roomkey" (room :key))
+ ;; (.setAttribute st "json_tags" json-tags)
+ (if (default-room? roomkey)
+ (.setAttribute st "roomkey" "")
+ (.setAttribute st "roomkey" (str roomkey ".")))
(.setAttribute st "roomname" (room :name))
(.setAttribute st "debug_log_items" (logger))
(.toString st)))
(defn validated-log [session room-key offset params]
- (if (validate-room-access room-key session)
- (log session (lookup-room room-key) offset params)
- (resp-error "UNKNOWN_ROOM")))
+ (let [room-key (if (= (lower-case room-key) "www") "dumpfm" room-key)]
+ (if (validate-room-access room-key session)
+ (log session (lookup-room room-key) offset params)
+ (resp-error "UNKNOWN_ROOM"))))
;; Tags
@@ -972,12 +982,13 @@ ORDER BY msg_count DESC")
(GET "http://:sub.dump.fm/" (validated-chat session (params :sub) "chat"))
(GET "http://:sub.dump.fm/chat" (validated-chat session (params :sub) "chat"))
(GET "/:room/chat" (validated-chat session (params :room) "chat"))
- (GET "/chat" (validated-chat session "dumpfm" "chat"))
- (GET "/chat/:t" (validated-chat session "dumpfm" (params :t)))
+ (GET "/chat" (validated-chat session *default-room* "chat"))
+ (GET "/chat/:t" (validated-chat session *default-room* (params :t)))
(GET "http://:sub.dump.fm/log" (validated-log session (params :sub) "0" params))
- (GET "http://:sub.dump.fm/log/:offset" (validated-log session (params :room) (params :offset) params))
- (GET "/log" (validated-log session "dumpfm" "0" params))
+ (GET "http://:sub.dump.fm/log/:offset" (validated-log session (params :sub) (params :offset) params))
+ (GET "/log" (validated-log session *default-room* "0" params))
+ (GET "/log/:offset" (validated-log session *default-room* (params :offset) params))
(GET "/:room/log" (validated-log session (params :room) "0" params))
(GET "/:room/log/:offset" (validated-log session (params :room) (params :offset) params))