summaryrefslogtreecommitdiff
path: root/src/site.clj
diff options
context:
space:
mode:
Diffstat (limited to 'src/site.clj')
-rw-r--r--src/site.clj36
1 files changed, 36 insertions, 0 deletions
diff --git a/src/site.clj b/src/site.clj
index f88afaf..620756d 100644
--- a/src/site.clj
+++ b/src/site.clj
@@ -847,6 +847,35 @@ WHERE u.user_id = ANY(?)"
(log session (lookup-room room-key) offset params)
(resp-error "UNKNOWN_ROOM"))))
+;; Altars
+
+(defn altar-log [session params]
+ (let [id (params :id)
+ st (fetch-template "altar_log" session)
+ raw-dumps (tags/fetch-altars :message-id id :amount (+ 1 *dumps-per-page*))
+ dumps (map tags/add-favorited-flag (take *dumps-per-page* raw-dumps) (repeat session))
+ dumps (map tags/remove-tags-for-output dumps)
+ dumps (map process-message-for-output dumps)]
+ (.setAttribute st "dumps" dumps)
+ (if (> (count raw-dumps) *dumps-per-page*)
+ (.setAttribute st "next" ((last raw-dumps) :message_id)))
+ (.toString st)))
+
+(defn altar-log-by-nick [session params]
+ (let [id (params :id)
+ nick (params :nick)
+ user-id (user-id-from-nick nick)
+ st (fetch-template "altar_user_log" session)
+ raw-dumps (tags/fetch-altars :message-id id :amount (+ 1 *dumps-per-page*) :user-id user-id)
+ dumps (map tags/add-favorited-flag (take *dumps-per-page* raw-dumps) (repeat session))
+ dumps (map tags/remove-tags-for-output dumps)
+ dumps (map process-message-for-output dumps)]
+ (.setAttribute st "dumps" dumps)
+ (.setAttribute st "nick" nick)
+ (if (> (count raw-dumps) *dumps-per-page*)
+ (.setAttribute st "next" ((last raw-dumps) :message_id)))
+ (.toString st)))
+
;; Tags
(defn undecoded-url-piece [url position]
@@ -1263,6 +1292,10 @@ WHERE u.user_id = ANY(?)"
(POST "/cmd/tag/add" (validated-add-tag session params))
(POST "/cmd/tag/rm" (validated-remove-tag session params))
+ (GET "/altars" (altar-log session params))
+ (GET "/altars/" (altar-log session params))
+ (GET "/altars/:id" (altar-log session params))
+
;; Events
(GET "/event" (current-event session))
@@ -1313,6 +1346,9 @@ WHERE u.user_id = ANY(?)"
;; Put username routes below all others in priority
(GET "/:nick" (profile session (params :nick)))
(GET "/:nick/" (profile session (params :nick)))
+ (GET "/:nick/altars" (altar-log-by-nick session params))
+ (GET "/:nick/altars/" (altar-log-by-nick session params))
+ (GET "/:nick/altars/:id" (altar-log-by-nick session params))
(GET "/:nick/tag/:tag" (tagged-dumps-by-nick session params (request-url request)))
(GET "/:nick/tag/:tag/:offset" (tagged-dumps-by-nick session params (request-url request)))
(GET "/:nick/favorites" (favorites-handler session (params :nick) nil nil))