diff options
Diffstat (limited to 'src/datalayer.clj')
| -rw-r--r-- | src/datalayer.clj | 36 |
1 files changed, 29 insertions, 7 deletions
diff --git a/src/datalayer.clj b/src/datalayer.clj index 711dc65..24c162a 100644 --- a/src/datalayer.clj +++ b/src/datalayer.clj @@ -10,8 +10,6 @@ user utils)) - - ;;;; Message lookup (defn recent-posts-query [user-id] @@ -81,6 +79,9 @@ WHERE u.nick = ANY(?)" ;;;; Popular Posts +(defn redis-popular-key [nick] + (str "popular:" nick)) + (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 @@ -101,9 +102,10 @@ order by count desc limit ? offset ?") :favorited (some #(= % viewer-nick) favers))))) (defn fetch-popular-dumps-redis [nick viewer-nick] - (let [rkey (str "popular:" nick) - msg-ids (redis/with-server redis-server - (redis/zrevrange rkey 0 (dec num-popular-dumps))) + (let [msg-ids (redis/with-server redis-server + (redis/zrevrange (redis-popular-key nick) + 0 + (dec num-popular-dumps))) msg-ids (map maybe-parse-int msg-ids)] (if-not (empty? msg-ids) (sort-by @@ -113,11 +115,29 @@ order by count desc limit ? offset ?") ;;;; Redis Favscores +(def score-piece-map + (zipmap + [:pawn :knight :bishop :rook :queen :king :skull] + ["♟" "♞" "♝" "♜" "♛" "♚" "☠"])) + +(defn score-to-piece [score] + (cond (= score -1) :skull + (= score 0) :pawn + (< score 50) :knight + (< score 150) :bishop + (< score 300) :rook + (< score 1000) :queen + :else :king)) + +(def score-to-entity (comp score-piece-map score-to-piece)) + +(def redis-favscores-key "favscores") + (defn fetch-redis-directory [page num] (vec (for [t (with-jedis #(.zrevrangeWithScores % - "favscores" + redis-favscores-key (* page num) (dec (* (inc page) num))))] {:nick (.getElement t) @@ -144,10 +164,12 @@ order by count desc limit ? offset ?") ;;;; Redis Hall of Fame +(def redis-hall-key "hall") + (defn fetch-redis-hall [viewer-nick] (let [ids (map maybe-parse-int (redis/with-server redis-server - (redis/zrevrange "hall" 0 (dec num-hall-dumps))))] + (redis/zrevrange redis-hall-key 0 (dec num-hall-dumps))))] (if-not (empty? ids) (sort-by #(* -1 (:count %)) |
