summaryrefslogtreecommitdiff
path: root/src/site.clj
diff options
context:
space:
mode:
Diffstat (limited to 'src/site.clj')
-rw-r--r--src/site.clj29
1 files changed, 17 insertions, 12 deletions
diff --git a/src/site.clj b/src/site.clj
index ebf2077..57f9bb1 100644
--- a/src/site.clj
+++ b/src/site.clj
@@ -94,6 +94,9 @@
;; Room handling
+(defn lookup-room [key]
+ (@rooms (lower-case key)))
+
(defn fetch-rooms []
(do-select ["SELECT * FROM ROOMS"]))
@@ -362,6 +365,7 @@
(defn profile [session profile-nick offset]
(if-let [user-info (fetch-nick profile-nick)]
(let [st (fetch-template "profile" session)
+ profile-nick (:nick user-info)
nick (session :nick)
logger (make-time-logger)
is-home (and nick (= nick profile-nick))
@@ -528,7 +532,7 @@
(dosync (ref-set (room :topic) nil)))
(defn validate-set-topic [session params]
- (let [room (@rooms (params :room))
+ (let [room (lookup-room (params :room))
topic (params :topic)
deadline (params :deadline)
maker (params :maker)]
@@ -542,7 +546,7 @@
(resp-success "OK")))))
(defn validate-end-topic [session params]
- (let [room (@rooms (params :room))]
+ (let [room (lookup-room (params :room))]
(cond (not (is-vip? :is_admin)) (resp-error "NOT_VIP")
(not room) (resp-error "INVALID_ROOM")
:else (do
@@ -552,12 +556,11 @@
;; Chat
(defn validate-room-access [room-key session]
- (let [room (@rooms room-key)]
+ (let [room (lookup-room room-key)]
(and room
(or (not (room :admin_only))
(is-vip? session)))))
-;; 3/20/10: add template so multiple chat urls for ryder
(defn chat [session room template]
(let [now (System/currentTimeMillis)
nick (session :nick)
@@ -580,9 +583,11 @@
(.setAttribute st "timestamp" now)
(.toString st)))
+
+
(defn validated-chat [session room-key template]
(if (validate-room-access room-key session)
- (chat session (@rooms room-key) template)
+ (chat session (lookup-room room-key) template)
(resp-error "UNKNOWN_ROOM")))
(defn refresh [session params room]
@@ -601,7 +606,7 @@
(defn validated-refresh [session params]
(let [room-key (params :room)
- room (@rooms room-key)]
+ room (lookup-room room-key)]
(if (validate-room-access room-key session)
(refresh session params room)
(resp-error "UNKNOWN_ROOM"))))
@@ -630,7 +635,7 @@
(let [user-id (session :user_id)
nick (session :nick)
room-key (params :room)
- room (@rooms room-key)
+ room (lookup-room room-key)
content (.trim (params :content))
now (new Date)]
(cond (not room) (resp-error "BAD_ROOM")
@@ -652,7 +657,7 @@
;; Browser
(defn browser [session]
- (let [room (@rooms "dumpfm")
+ (let [room (lookup-room "dumpfm")
now (System/currentTimeMillis)
nick (session :nick)
st (fetch-template "browser" session)]
@@ -703,7 +708,7 @@
(defn validated-log [session room-key offset params]
(if (validate-room-access room-key session)
- (log session (@rooms room-key) offset params)
+ (log session (lookup-room room-key) offset params)
(resp-error "UNKNOWN_ROOM")))
;; Tags
@@ -881,7 +886,7 @@
(cond (not nick) [200 "NOT_LOGGED_IN"]
(not image) [200 "INVALID_REQUEST"]
(not (validate-room-access room-key session)) [200 "UNKNOWN_ROOM"]
- :else (do-upload session image (@rooms room-key)))))
+ :else (do-upload session image (lookup-room room-key)))))
;; N.B. -- Upload responses aren't JSON-evaluated
(defn do-upload-avatar [session image]
@@ -1022,8 +1027,8 @@
(dosync
(doseq [room-db (fetch-rooms)]
- (alter rooms assoc (room-db :key)
- (build-room-map-from-db room-db))))
+ (alter rooms assoc (lower-case (room-db :key))
+ (build-room-map-from-db room-db))))
(defn start-server [port]
(run-server {:port port}