diff --git a/app/models/comment.rb b/app/models/comment.rb index a9bae30..ce5d176 100644 --- a/app/models/comment.rb +++ b/app/models/comment.rb @@ -134,18 +134,14 @@ class Comment < ActiveRecord::Base end end - if u.pushover_mentions? && u.pushover_user_key.present? - begin - Pushover.push(u.pushover_user_key, u.pushover_device, { - :title => "#{Rails.application.name} mention by " << - "#{self.user.username} on #{self.story.title}", - :message => self.plaintext_comment, - :url => self.url, - :url_title => "Reply to #{self.user.username}", - }) - rescue => e - Rails.logger.error "error sending to pushover: #{e}" - end + if u.pushover_mentions? + u.pushover!({ + :title => "#{Rails.application.name} mention by " << + "#{self.user.username} on #{self.story.title}", + :message => self.plaintext_comment, + :url => self.url, + :url_title => "Reply to #{self.user.username}", + }) end end end @@ -162,18 +158,14 @@ class Comment < ActiveRecord::Base end end - if u.pushover_replies? && u.pushover_user_key.present? - begin - Pushover.push(u.pushover_user_key, u.pushover_device, { - :title => "#{Rails.application.name} reply from " << - "#{self.user.username} on #{self.story.title}", - :message => self.plaintext_comment, - :url => self.url, - :url_title => "Reply to #{self.user.username}", - }) - rescue => e - Rails.logger.error "error sending to pushover: #{e}" - end + if u.pushover_replies? + u.pushover!({ + :title => "#{Rails.application.name} reply from " << + "#{self.user.username} on #{self.story.title}", + :message => self.plaintext_comment, + :url => self.url, + :url_title => "Reply to #{self.user.username}", + }) end end end diff --git a/app/models/message.rb b/app/models/message.rb index b12a825..34274bb 100644 --- a/app/models/message.rb +++ b/app/models/message.rb @@ -45,20 +45,14 @@ class Message < ActiveRecord::Base end end - if self.recipient.pushover_messages? && - self.recipient.pushover_user_key.present? - begin - Pushover.push(self.recipient.pushover_user_key, - self.recipient.pushover_device, { - :title => "#{Rails.application.name} message from " << - "#{self.author.username}: #{self.subject}", - :message => self.plaintext_body, - :url => self.url, - :url_title => "Reply to #{self.author.username}", - }) - rescue => e - Rails.logger.error "error sending to pushover: #{e}" - end + if self.recipient.pushover_messages? + self.recipient.pushover!({ + :title => "#{Rails.application.name} message from " << + "#{self.author.username}: #{self.subject}", + :message => self.plaintext_body, + :url => self.url, + :url_title => "Reply to #{self.author.username}", + }) end end diff --git a/app/models/user.rb b/app/models/user.rb index 92ed5e8..3202998 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -38,8 +38,8 @@ class User < ActiveRecord::Base attr_accessible :username, :email, :password, :password_confirmation, :about, :email_replies, :pushover_replies, :pushover_user_key, - :pushover_device, :email_messages, :pushover_messages, :email_mentions, - :pushover_mentions, :mailing_list_enabled, :delete_me + :pushover_device, :pushover_sound, :email_messages, :pushover_messages, + :email_mentions, :pushover_mentions, :mailing_list_enabled, :delete_me before_save :check_session_token before_validation :on => :create do @@ -187,6 +187,13 @@ class User < ActiveRecord::Base ).first end + def pushover!(params) + if self.pushover_user_key.present? + Pushover.push(self.pushover_user_key, self.pushover_device, + params.merge({ :sound => self.pushover_sound.to_s })) + end + end + def recent_threads(amount) self.comments.group(:thread_id).order('MAX(created_at) DESC').limit( amount).pluck(:thread_id) diff --git a/app/views/settings/index.html.erb b/app/views/settings/index.html.erb index b0a9234..d5daab4 100644 --- a/app/views/settings/index.html.erb +++ b/app/views/settings/index.html.erb @@ -51,6 +51,12 @@ :size => 15 %> +