summaryrefslogtreecommitdiff
path: root/src/site.clj
diff options
context:
space:
mode:
Diffstat (limited to 'src/site.clj')
-rw-r--r--src/site.clj30
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)]