diff options
| author | Scott Ostler <scottbot9000@gmail.com> | 2011-03-07 13:55:37 -0500 |
|---|---|---|
| committer | Scott Ostler <scottbot9000@gmail.com> | 2011-03-07 13:55:37 -0500 |
| commit | d64fae424115a12a5d21bcc597bc649a02bd2286 (patch) | |
| tree | 508893f4ef54109bb7801147f9f4c04766490d11 | |
| parent | 4a51655dd1174dbb2a594c56b6c300f01872a949 (diff) | |
fix favscore lookup for users with caps
| -rw-r--r-- | src/datalayer.clj | 23 |
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)) |
