diff options
| author | Scott Ostler <scottbot9000@gmail.com> | 2010-07-02 11:59:53 -0400 |
|---|---|---|
| committer | Scott Ostler <scottbot9000@gmail.com> | 2010-07-02 11:59:53 -0400 |
| commit | 1adc9eb0fd5bc0b913709da96d730d7293bf39b2 (patch) | |
| tree | 021971b6ff3e22affa3761e224838912e8ac6fab | |
| parent | 1fd0be696cf74dd73697d507a7bc7b7db18a1ffd (diff) | |
Order /nick/popular favs by recently faved
| -rw-r--r-- | src/site.clj | 15 |
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)] |
