summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorScott Ostler <scottbot9000@gmail.com>2010-07-02 11:59:53 -0400
committerScott Ostler <scottbot9000@gmail.com>2010-07-02 11:59:53 -0400
commit1adc9eb0fd5bc0b913709da96d730d7293bf39b2 (patch)
tree021971b6ff3e22affa3761e224838912e8ac6fab
parent1fd0be696cf74dd73697d507a7bc7b7db18a1ffd (diff)
Order /nick/popular favs by recently faved
-rw-r--r--src/site.clj15
1 files changed, 10 insertions, 5 deletions
diff --git a/src/site.clj b/src/site.clj
index 94abd6c..5a3b485 100644
--- a/src/site.clj
+++ b/src/site.clj
@@ -541,7 +541,8 @@ FROM users u
(def popular-dumps-qry "
select u.nick, u.avatar, r.key, m.message_id, m.content, m.created_on, count(*) as count,
array_agg(u2.nick) as user_nicks,
- array_agg(u2.avatar) as user_avs
+ array_agg(u2.avatar) as user_avs,
+ array_agg(t.created_on) as favtime
from users u, messages m, rooms r, tags t, users u2
where lower(u.nick) = lower(?)
and u.user_id = m.user_id and m.message_id = t.message_id
@@ -554,10 +555,14 @@ order by count desc limit 20 offset 0")
(defn get-popular-dumps [nick]
(for [d (do-select [popular-dumps-qry nick])]
(assoc d
- :favers (map (fn [n a] {:nick n :avatar a})
- (.getArray (:user_nicks d))
- (.getArray (:user_avs d)))
- :user_nicks nil :user_avs nil)))
+ :favers (sort-by :t (comp #(* -1 %) compare)
+ (map (fn [n a t] (if (non-empty-string? a)
+ {:nick n :avatar a :t t}
+ {:nick n :t t}))
+ (.getArray (:user_nicks d))
+ (.getArray (:user_avs d))
+ (.getArray (:favtime d))))
+ :user_nicks nil :user_avs nil :favtime nil)))
(defn popular [session profile-nick]
(if-let [user-info (fetch-nick profile-nick)]