summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorScott Ostler <scottbot9000@gmail.com>2011-07-21 22:35:38 -0400
committerScott Ostler <scottbot9000@gmail.com>2011-07-21 22:35:38 -0400
commit38091d8e194aa48f6bd64e2cf8ccba6fd27c36a2 (patch)
tree9ca845ec490a1bb706d263fd33a3b1c51a52da24 /src
parentfd7329a76f93263834f359546dad5bf32162f1bf (diff)
parent39230d6ce132259d0c2efce231119ea57b413ccc (diff)
Merge branch 'master' of ssh://dump.fm/pichat/repo
Diffstat (limited to 'src')
-rw-r--r--src/datalayer.clj20
-rw-r--r--src/email.clj6
-rw-r--r--src/site.clj24
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!)