summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorScott Ostler <scottbot9000@gmail.com>2010-06-22 04:53:56 -0400
committerScott Ostler <scottbot9000@gmail.com>2010-06-22 04:53:56 -0400
commite6fc8fe57e0ad75313f839fe60a5bb442f7954fb (patch)
treeecbfbe3d2cb41eb57e14c822fa1404405e2ec508 /src
parenta5c1f147db69d161110286e40da3c7f0c18cae8b (diff)
Added infobar to favs page, added mini-profile template
Diffstat (limited to 'src')
-rw-r--r--src/site.clj66
-rwxr-xr-xsrc/utils.clj3
2 files changed, 41 insertions, 28 deletions
diff --git a/src/site.clj b/src/site.clj
index c9c034d..93a263d 100644
--- a/src/site.clj
+++ b/src/site.clj
@@ -365,6 +365,7 @@ FROM users u
(let [scores (:map (poll *user-scores*))]
(get scores nick 0))))
+; TODO: merge w/ user/fetch-nick
(defn lookup-user-info [nick]
(if-let [i (get (poll *user-info*) nick)]
(if-let [score (lookup-score nick)]
@@ -456,18 +457,29 @@ FROM users u
;; User log
+(defn build-mini-profile [user-info]
+ (let [st (fetch-template-fragment "mini_profile")
+ nick (user-info :nick)
+ score (lookup-score nick)]
+ (doseq [a [:nick :avatar :contact :bio]]
+ (let [v (user-info a)]
+ (.setAttribute st (name a)
+ (if (non-empty-string? v) (escape-html v)))))
+ (doto st
+ (.setAttribute "score" (comma-format score))
+ (.setAttribute "score_ent" (score-to-entity score))
+ (.setAttribute "dump_cnt" (comma-format (count-dumps-posted nick)))
+ (.setAttribute "dumps_user_faved_cnt" (comma-format (count-dumps-user-faved nick)))
+ (.toString))))
+
(defn user-log [session profile-nick offset]
(if-let [user-info (fetch-nick profile-nick)]
(let [st (fetch-template "userlog" session)
profile-nick (:nick user-info) ; Update to get right casing
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-cnt (count-dumps-posted profile-nick)
- fav-from-cnt (count-dumps-user-faved profile-nick)
- score (lookup-score profile-nick)
dump-offset (* offset *dumps-per-page*)
raw-dumps (logger tags/fetch-dumps-by-nick
:nick profile-nick
@@ -476,19 +488,13 @@ FROM users u
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))]
- (.setAttribute st "is_home" is-home)
- (doseq [a [:nick :avatar :contact :bio]]
- (let [v (user-info a)]
- (.setAttribute st (name a)
- (if (non-empty-string? v) (escape-html v)))))
- (if (> (count dumps) 0)
+ (.setAttribute st "nick" profile-nick)
+ (.setAttribute st "is_home" (= nick profile-nick))
+ (.setAttribute st "mini_profile" (build-mini-profile user-info))
+ (if (> (count dumps) 0)
(.setAttribute st "dumps" dumps))
(if (> (count raw-dumps) *dumps-per-page*)
(.setAttribute st "next" (inc offset)))
- (.setAttribute st "score" (comma-format score))
- (.setAttribute st "score_ent" (score-to-entity score))
- (.setAttribute st "dump_cnt" (comma-format dump-cnt))
- (.setAttribute st "dumps_user_faved_cnt" (comma-format fav-from-cnt))
(if (not= offset 0)
(.setAttribute st "prev" (max (dec offset) 0)))
(.setAttribute st "debug_log_items" (logger))
@@ -783,11 +789,11 @@ FROM users u
;; message-user-id: get messages posted by this user
;; tag-user-id: get messages tagged by this user
-(defnk tagged-dumps-template [session params tags url page-title :message-user-id false
- :tag-user-id false
- :avatar nil
- :logger (make-time-logger)
- :include-vip false]
+(defnk tagged-dumps-template [session params tags url page-title info-bar
+ :message-user-id false
+ :tag-user-id false
+ :logger (make-time-logger)
+ :include-vip false]
(let [st (fetch-template "tagged_dumps" session)
offset (maybe-parse-int (params :offset) 0)
dump-offset (* offset *dumps-per-page*)
@@ -806,9 +812,8 @@ FROM users u
(if (not= offset 0)
(.setAttribute st "prev" (max (dec offset) 0)))
(.setAttribute st "dumps" dumps)
+ (.setAttribute st "infobar" info-bar)
(.setAttribute st "page_title" page-title)
- (if avatar
- (.setAttribute st "avatar" avatar))
(.setAttribute st "page_url" url)
(.setAttribute st "debug_log_items" (logger))
(.toString st)))
@@ -818,26 +823,29 @@ FROM users u
(defn tagged-dumps-by-nick [session params url]
(let [nick (params :nick)
user-id (user-id-from-nick nick)
- tags (map url-decode (re-split #"\+" (undecoded-url-piece url 3)))
+ user-info (fetch-nick nick)
+ info-bar (build-mini-profile user-info)
+ tags (map url-decode (re-split #"\+" (undecoded-url-piece url 2)))
url (str nick "/tag/" (str-join "+" (map url-encode tags)))
page-title (str "dumps " nick " tagged as '" (escape-html (str-join "' and '" tags)) "'")]
- (tagged-dumps-template session params tags url page-title :tag-user-id user-id)))
+ (tagged-dumps-template session params tags url page-title info-bar :tag-user-id user-id)))
(defn tagged-dumps [session params url]
(let [tags (map url-decode (re-split #"\+" (undecoded-url-piece url 1)))
url (str "tag/" (str-join "+" (map url-encode tags)))
page-title (str "dumps tagged as '" (escape-html (str-join "' and '" tags)) "'")]
- (tagged-dumps-template session params tags url page-title)))
+ (tagged-dumps-template session params tags url page-title "")))
(defn favorites [session params]
(let [nick (params :nick)
- user-info (lookup-user-info nick)
+ user-info (fetch-nick nick)
user-id (:user_id user-info)
avatar (:avatar user-info)
url (str nick "/favorites")
- page-title (str nick "'s favorites")]
- (tagged-dumps-template session params "favorite" url page-title :tag-user-id user-id
- :avatar avatar
+ page-title (str nick "'s favorites")
+ infobar (build-mini-profile user-info)]
+ (tagged-dumps-template session params "favorite" url page-title infobar
+ :tag-user-id user-id
:include-vip (is-vip? session))))
(defn json-favorites [session params]
@@ -1099,6 +1107,8 @@ FROM users u
(GET "/:nick/tag/:tag/:offset" (tagged-dumps-by-nick session params (request-url request)))
(GET "/:nick/favorites" (favorites session params))
(GET "/:nick/favorites/:offset" (favorites session params))
+ (GET "/:nick/favs" (favorites session params))
+ (GET "/:nick/favs/:offset" (favorites session params))
(GET "/:nick/log" (user-log session (params :nick) "0"))
(GET "/:nick/log/:offset" (user-log session (params :nick) (params :offset)))
(GET "/:nick/:offset" (user-log session (params :nick) (params :offset)))
diff --git a/src/utils.clj b/src/utils.clj
index 8bd8291..04b870f 100755
--- a/src/utils.clj
+++ b/src/utils.clj
@@ -270,6 +270,9 @@
(.setAttribute st "isadmin" (session :is_admin))))
st))
+(defn fetch-template-fragment [template]
+ (.getInstanceOf template-group template))
+
(defn serve-template [template session]
(.toString (fetch-template template session)))