diff options
Diffstat (limited to 'src/site.clj')
| -rw-r--r-- | src/site.clj | 30 |
1 files changed, 18 insertions, 12 deletions
diff --git a/src/site.clj b/src/site.clj index 57f9bb1..234f5da 100644 --- a/src/site.clj +++ b/src/site.clj @@ -21,7 +21,8 @@ cookie-login session-sweeper feed - tags)) + tags + scheduled-agent)) (def *run-flusher* true) (def *flusher-sleep* (seconds 4)) @@ -351,11 +352,11 @@ invalid-nick-reason (is-invalid-nick? nick)] (cond invalid-nick-reason (resp-error invalid-nick-reason) (check-nick nick) (resp-error "NICK_TAKEN") - :else (with-connection *db* - (insert-values :users - [:nick :hash :email] - [nick hash email]) - (let [db-user (fetch-nick nick)] + :else (do + (do-insert :users + [:nick :hash :email] + [nick hash email]) + (let [db-user (fetch-nick nick)] (send-registration-email nick email) [(session-assoc-from-db db-user) (resp-success "OK")]))))) @@ -632,14 +633,19 @@ :message_id)))) (defn msg [session params] - (let [user-id (session :user_id) - nick (session :nick) - room-key (params :room) - room (lookup-room room-key) - content (.trim (params :content)) - now (new Date)] + (let [user-id (session :user_id) + mute ((poll *active-mutes*) user-id) + nick (session :nick) + room-key (params :room) + room (lookup-room room-key) + content (.trim (params :content)) + now (new Date)] (cond (not room) (resp-error "BAD_ROOM") (not nick) (resp-error "NOT_LOGGED_IN") + mute (resp-error + (format (str "I'm sorry, you've been muted for %s. " + "You'll be able to post again on %s EST.") + (mute :reason) (mute :expiry))) :else (let [msg-id (msg-db user-id (room :room_id) content) msg (struct message-struct nick content now msg-id)] |
