diff options
| -rwxr-xr-x | src/feed.clj | 9 | ||||
| -rw-r--r-- | src/rooms.clj | 9 | ||||
| -rw-r--r-- | src/site.clj | 4 |
3 files changed, 12 insertions, 10 deletions
diff --git a/src/feed.clj b/src/feed.clj index 43ad077..3a3cc35 100755 --- a/src/feed.clj +++ b/src/feed.clj @@ -90,13 +90,10 @@ WHERE NOT EXISTS (SELECT 1 filtered-good (filter-posted-images good room-id)] (doseq [img filtered-good] (println (format "Inserting %s into %s from %s" img room-key feed)) - (let [msg-id (insert-feed-image-to-db! room-id feed img bot-id) - msg {:msg_id msg-id - :nick bot-nick - :created_on (new Date) - :content img}] + (let [msg-id (insert-feed-image-to-db! room-id feed img bot-id)] (dosync - (add-message msg (lookup-room room-key))))))) + (add-message (build-msg bot-nick img msg-id) + (lookup-room room-key))))))) (defn process-all-feeds! [] (doseq [f (shuffle (read-feeds))] diff --git a/src/rooms.clj b/src/rooms.clj index e18a434..09b81ba 100644 --- a/src/rooms.clj +++ b/src/rooms.clj @@ -1,7 +1,10 @@ (ns rooms + (:import java.util.Date) (:use clojure.contrib.str-utils utils)) +(defstruct message-struct :nick :content :created_on :msg_id) + (def *run-flusher* true) (def *flusher-sleep* (seconds 4)) (def *user-timeout* (seconds 15)) @@ -81,6 +84,12 @@ (defn login-user [user room] (alter (room :users) assoc (user :nick) user)) +; Note: To ensure that the msg's timestamp is consistent +; with other msg creations, build-msg should be called +; from within a dosync. +(defn build-msg [nick content msg-id] + (struct message-struct nick content (new Date) msg-id)) + (defn add-message [msg room] (alter (room :messages) (swap cons) msg)) diff --git a/src/site.clj b/src/site.clj index 2197dd5..45ee9e5 100644 --- a/src/site.clj +++ b/src/site.clj @@ -25,7 +25,6 @@ user)) (defstruct user-struct :nick :user_id :avatar :last-seen) -(defstruct message-struct :nick :content :created_on :msg_id) (defn user-struct-from-session [session] (struct user-struct (session :nick) (session :user_id) (session :avatar) @@ -584,9 +583,6 @@ FROM users u ((first (do-select [qry user-id room-id content is-image])) :message_id)))) -(defn build-msg [nick content msg-id] - (struct message-struct nick content (new Date) msg-id)) - (defn msg [session params] (let [user-id (session :user_id) mute ((poll *active-mutes*) user-id) |
