summaryrefslogtreecommitdiff
path: root/src/datalayer.clj
diff options
context:
space:
mode:
Diffstat (limited to 'src/datalayer.clj')
-rw-r--r--src/datalayer.clj36
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 %))