summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/datalayer.clj27
-rw-r--r--src/site.clj4
2 files changed, 23 insertions, 8 deletions
diff --git a/src/datalayer.clj b/src/datalayer.clj
index 255a239..b602d0b 100644
--- a/src/datalayer.clj
+++ b/src/datalayer.clj
@@ -178,22 +178,37 @@ 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 "favscores" (lower-case 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))
is-image? (:is_image msg)
- nick (lower-case (:nick msg))
+ nick (:nick msg)
incr (double incr)]
(with-jedis
#(do
- (.zincrby % "favscores" incr nick)
+ (.zincrby % redis-favscores-key incr nick)
(when is-image?
(.zincrby % (redis-daily-hall-key (:created_on msg)) incr msg-id)
(.zincrby % (redis-popular-key nick) incr msg-id)
diff --git a/src/site.clj b/src/site.clj
index 35073e5..b6c8882 100644
--- a/src/site.clj
+++ b/src/site.clj
@@ -205,8 +205,8 @@
([session dt-str]
(let [today (Date.)]
(if-let [[prev-date cur-date next-date] (parse-front-page-date dt-str)]
- (cond (neg? (.compareTo cur-date earliest-daily-hall)) (redirect-to "/")
- (pos? (.compareTo cur-date (Date.))) (redirect-to "/")
+ (cond (.before cur-date earliest-daily-hall) (redirect-to "/")
+ (.after cur-date today) (redirect-to "/")
:else (let [st (fetch-template "frontpage" session)
dumps (map process-message-for-output
(fetch-redis-daily-hall cur-date 0 20 (:user_id session)))]