diff options
| author | Scott Ostler <scottbot9000@gmail.com> | 2010-06-22 14:11:08 -0400 |
|---|---|---|
| committer | Scott Ostler <scottbot9000@gmail.com> | 2010-06-22 14:11:08 -0400 |
| commit | 8955fabcc5f550eb3eb7c0a43c045e444878edff (patch) | |
| tree | 2acd6f13ce5e85c93ae7142aec6763566e92ff76 | |
| parent | 8bd14cf5d2acb1e3c50b6f9e9eaa3fddc3e36b71 (diff) | |
Fixed error message for broken chat template
| -rw-r--r-- | src/site.clj | 69 | ||||
| -rwxr-xr-x | src/utils.clj | 20 |
2 files changed, 46 insertions, 43 deletions
diff --git a/src/site.clj b/src/site.clj index 93a263d..0e543a1 100644 --- a/src/site.clj +++ b/src/site.clj @@ -563,29 +563,30 @@ FROM users u (is-vip? session)))) (defn chat [session room template] - (let [now (System/currentTimeMillis) - nick (session :nick) - st (fetch-template template session) - limit (if (:admin_only room) *vip-dumps-per-page* *dumps-per-page*) - message-list (reverse (tags/fetch-dumps-by-room :room-id (room :room_id) - :image-only false - :amount limit)) - 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))) - (let [user-list (prepare-user-list room true)] - (.setAttribute st "users" user-list)) - (.setAttribute st "messages" message-list) - (.setAttribute st "roomkey" (room :key)) - (.setAttribute st "isadminroom" (room :admin_only)) - (.setAttribute st "json_room_key" (json-str (room :key))) - (.setAttribute st "json_user_nick" (if nick (json-str nick) "null")) - (.setAttribute st "version" *chat-version-number*) - (.setAttribute st "roomname" (room :name)) - (.setAttribute st "timestamp" now) - (.toString st))) + (if-let [st (fetch-template template session)] + (let [now (System/currentTimeMillis) + nick (session :nick) + limit (if (:admin_only room) *vip-dumps-per-page* *dumps-per-page*) + message-list (reverse (tags/fetch-dumps-by-room :room-id (room :room_id) + :image-only false + :amount limit)) + 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))) + (doto st + (.setAttribute "users" (prepare-user-list room true)) + (.setAttribute "messages" message-list) + (.setAttribute "roomkey" (room :key)) + (.setAttribute "isadminroom" (room :admin_only)) + (.setAttribute "json_room_key" (json-str (room :key))) + (.setAttribute "json_user_nick" (if nick (json-str nick) "null")) + (.setAttribute "version" *chat-version-number*) + (.setAttribute "roomname" (room :name)) + (.setAttribute "timestamp" now) + (.toString))) + [404 "UNKNOWN PAGE"])) (defn validated-chat [session room-key template] (let [room-key (if (= (lower-case room-key) "www") *default-room* room-key)] @@ -707,8 +708,8 @@ FROM users u 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 + 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)) @@ -872,14 +873,14 @@ FROM users u (def *ghetto-search-regex* #"^[A-Za-z0-9\-_.+]*$") -(defn json-ghetto-search [undecoded-url-searchterms] - ( if (re-matches *ghetto-search-regex* undecoded-url-searchterms) - (let [tokens (map url-decode (re-split #"\+" undecoded-url-searchterms)) - tokens (map #(str "%" %1 "%") tokens) - query (ghetto-search-query (count tokens)) - rows (do-select (vec (concat [query] tokens)))] - (str "searchResult(" (json-str rows) ")")) - (str "searchError('sorry, no fancy characters')"))) +(defn json-ghetto-search [undecoded-url-searchterms] + (if (re-matches *ghetto-search-regex* undecoded-url-searchterms) + (let [tokens (map url-decode (re-split #"\+" undecoded-url-searchterms)) + tokens (map #(str "%" %1 "%") tokens) + query (ghetto-search-query (count tokens)) + rows (do-select (vec (concat [query] tokens)))] + (str "searchResult(" (json-str rows) ")")) + (str "searchError('sorry, no fancy characters')"))) ;; Account resets @@ -1089,7 +1090,7 @@ FROM users u (POST "/cancel-mute" (handle-cancel-mute! session params)) (GET "/profile-test/:t" (profile session "ryder" (params :t))) - (GET "/cmd/ghettosearch/:searchterm" (json-ghetto-search (undecoded-url-piece (request-url request) 2))) + (GET "/cmd/ghettosearch/:searchterm" (json-ghetto-search session (undecoded-url-piece (request-url request) 2))) (GET "/search" (serve-template "search_files" session)) ;; Footer pages diff --git a/src/utils.clj b/src/utils.clj index 04b870f..fbdefda 100755 --- a/src/utils.clj +++ b/src/utils.clj @@ -259,16 +259,18 @@ (def template-group (new StringTemplateGroup "dumpfm" "template")) (.setRefreshInterval template-group 3) -; TODO: handle exception, clean-up template setting (defn fetch-template [template session] - (let [st (.getInstanceOf template-group template)] - (if (session :nick) - (do (.setAttribute st "user_email" (session :email)) - (.setAttribute st "user_nick" (session :nick)) - (if (non-empty-string? (session :avatar)) - (.setAttribute st "user_avatar" (session :avatar))) - (.setAttribute st "isadmin" (session :is_admin)))) - st)) + (try + (let [st (.getInstanceOf template-group template)] + (if (session :nick) + (doto st + (.setAttribute "user_email" (session :email)) + (.setAttribute "user_nick" (session :nick)) + (.setAttribute "user_avatar" (if (non-empty-string? (session :avatar)) + (session :avatar) nil)) + (.setAttribute "isadmin" (session :is_admin))) + st)) + (catch Exception e nil))) (defn fetch-template-fragment [template] (.getInstanceOf template-group template)) |
