diff options
Diffstat (limited to 'app/mailers/notification_mailer.rb')
-rw-r--r-- | app/mailers/notification_mailer.rb | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/app/mailers/notification_mailer.rb b/app/mailers/notification_mailer.rb index b45844296..66fa337c1 100644 --- a/app/mailers/notification_mailer.rb +++ b/app/mailers/notification_mailer.rb @@ -66,16 +66,20 @@ class NotificationMailer < ApplicationMailer end def digest(recipient, **opts) - @me = recipient - @since = opts[:since] || @me.user.last_emailed_at || @me.user.current_sign_in_at - @notifications = Notification.where(account: @me, activity_type: 'Mention').where('created_at > ?', @since) - @follows_since = Notification.where(account: @me, activity_type: 'Follow').where('created_at > ?', @since).count + return if recipient.user.disabled? + + @me = recipient + @since = opts[:since] || [@me.user.last_emailed_at, (@me.user.current_sign_in_at + 1.day)].compact.max + @notifications_count = Notification.where(account: @me, activity_type: 'Mention').where('created_at > ?', @since).count - return if @me.user.disabled? || @notifications.empty? + return if @notifications_count.zero? + + @notifications = Notification.where(account: @me, activity_type: 'Mention').where('created_at > ?', @since).limit(40) + @follows_since = Notification.where(account: @me, activity_type: 'Follow').where('created_at > ?', @since).count locale_for_account(@me) do mail to: @me.user.email, - subject: I18n.t(:subject, scope: [:notification_mailer, :digest], count: @notifications.size) + subject: I18n.t(:subject, scope: [:notification_mailer, :digest], count: @notifications_count) end end |