diff options
| author | Scott Ostler <scottbot9000@gmail.com> | 2011-07-21 22:35:38 -0400 |
|---|---|---|
| committer | Scott Ostler <scottbot9000@gmail.com> | 2011-07-21 22:35:38 -0400 |
| commit | 38091d8e194aa48f6bd64e2cf8ccba6fd27c36a2 (patch) | |
| tree | 9ca845ec490a1bb706d263fd33a3b1c51a52da24 /src | |
| parent | fd7329a76f93263834f359546dad5bf32162f1bf (diff) | |
| parent | 39230d6ce132259d0c2efce231119ea57b413ccc (diff) | |
Merge branch 'master' of ssh://dump.fm/pichat/repo
Diffstat (limited to 'src')
| -rw-r--r-- | src/datalayer.clj | 20 | ||||
| -rw-r--r-- | src/email.clj | 6 | ||||
| -rw-r--r-- | src/site.clj | 24 |
3 files changed, 37 insertions, 13 deletions
diff --git a/src/datalayer.clj b/src/datalayer.clj index 12714d3..52d3b0a 100644 --- a/src/datalayer.clj +++ b/src/datalayer.clj @@ -146,14 +146,18 @@ WHERE u.nick = ANY(?)" (str "hall:daily:" (format-yyyymmdd date))) (defn fetch-redis-zset [key symbol offset num] - (for [t (with-jedis - #(.zrevrangeWithScores % - key - offset - (+ offset num 1))) - :when (> (int (.getScore t)) 0)] - {symbol (.getElement t) - :score (int (.getScore t))})) + (try + (for [t (with-jedis + #(.zrevrangeWithScores % + key + offset + (+ offset num 1))) + :when (> (int (.getScore t)) 0)] + {symbol (.getElement t) + :score (int (.getScore t))}) + (catch Exception e + (println (new java.util.Date) "jedis exception" e) + []))) (defn fetch-redis-daily-hall [date offset num user-id] (let [msg-ids (fetch-redis-zset (redis-daily-hall-key date) diff --git a/src/email.clj b/src/email.clj index d387624..3231b60 100644 --- a/src/email.clj +++ b/src/email.clj @@ -66,9 +66,7 @@ :text text :mime (classify-mimetype text))) -(def *admin-lists* {"dumpfmprod" ["opuscule@gmail.com" - "sbostler@gmail.com" - "theryderproject@gmail.com"] +(def *admin-lists* {"dumpfmprod" ["info@dump.fm"] "sostler" ["sbostler@gmail.com"]}) (defn get-admins [] @@ -93,4 +91,4 @@ body (format "Reason: %s" reason)] (dump-mail (get-admins) subject body))) -
\ No newline at end of file + diff --git a/src/site.clj b/src/site.clj index b6c8882..f386f2a 100644 --- a/src/site.clj +++ b/src/site.clj @@ -22,6 +22,7 @@ email fame message + jedis utils cookie-login session-sweeper @@ -200,6 +201,23 @@ (def earliest-daily-hall (parse-yyyymmdd-date "20100409")) +(defn hall-score [msg-id] + (first (do-select ["select count(*) from tags where message_id = ?" msg-id]))) + +(def frontpage-posts-path "docs/frontpage_msgs.txt") +(def frontpage-posts-agent + (scheduled-agent (fn [] + (try + (let [msg-ids (re-seq #"\w+" + (slurp frontpage-posts-path)) + msgs (datalayer/fetch-messages-by-id msg-ids)] + (for [m msgs] + (assoc m :score (hall-score (:message_id m))))) + (catch Exception e (println e) []))) + 3600 + nil)) +(def num-frontpage-dumps 20) + (defn front-page ([session] (front-page session (format-yyyymmdd (Date.)))) ([session dt-str] @@ -209,7 +227,10 @@ (.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)))] + (if (:nick session) + (fetch-redis-daily-hall cur-date 0 20 (:user_id session)) + (take num-frontpage-dumps + (shuffle (poll frontpage-posts-agent)))))] (.setAttribute st "dumps" dumps) (if-not (.after next-date today) (.setAttribute st "next_date" (format-yyyymmdd next-date))) @@ -1393,6 +1414,7 @@ WHERE user_id IN (def server (start-server (options :port))) (start! active-mutes) +(start! frontpage-posts-agent) (start-user-flusher!) (start-session-pruner!) |
