summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorScott Ostler <scottbot9000@gmail.com>2011-03-07 13:55:37 -0500
committerScott Ostler <scottbot9000@gmail.com>2011-03-07 13:55:37 -0500
commitd64fae424115a12a5d21bcc597bc649a02bd2286 (patch)
tree508893f4ef54109bb7801147f9f4c04766490d11
parent4a51655dd1174dbb2a594c56b6c300f01872a949 (diff)
fix favscore lookup for users with caps
-rw-r--r--src/datalayer.clj23
1 files changed, 19 insertions, 4 deletions
diff --git a/src/datalayer.clj b/src/datalayer.clj
index 5a9026c..12714d3 100644
--- a/src/datalayer.clj
+++ b/src/datalayer.clj
@@ -174,13 +174,28 @@ WHERE u.nick = ANY(?)"
(* page num)
(dec (* (inc page) num)))))
+
+;; 2011-03-07: While transitioning from keying favscores by lowercase nick to actual nick,
+;; both must be summed to get accurate score until redis is updated.
+;; Actually, we should just use userids.
+
+(defn- has-uppercase-char? [s]
+ (some #(Character/isUpperCase %) s))
+
+
+(redis/with-server redis-server
+ (redis/zscore redis-favscores-key "asdfkasdf"))
+
+
(defn fetch-redis-favscore [nick]
(if (= (lower-case nick) "scottbot")
-1
- (maybe-parse-int
- (redis/with-server redis-server
- (redis/zscore redis-favscores-key nick))
- 0)))
+ (let [lookup #(or (redis/with-server redis-server
+ (redis/zscore redis-favscores-key %))
+ 0)]
+ (if (has-uppercase-char? nick)
+ (+ (lookup nick) (lookup (lower-case nick)))
+ (lookup nick)))))
(defn incrby-redis-favscore! [msg incr]
(let [msg-id (str (:message_id msg))