about summary refs log tree commit diff
path: root/app/workers/feed_insert_worker.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/workers/feed_insert_worker.rb')
-rw-r--r--app/workers/feed_insert_worker.rb15
1 files changed, 14 insertions, 1 deletions
diff --git a/app/workers/feed_insert_worker.rb b/app/workers/feed_insert_worker.rb
index 633ec91bd..b70c7e389 100644
--- a/app/workers/feed_insert_worker.rb
+++ b/app/workers/feed_insert_worker.rb
@@ -23,7 +23,10 @@ class FeedInsertWorker
   private
 
   def check_and_insert
-    perform_push unless feed_filtered?
+    return if feed_filtered?
+
+    perform_push
+    perform_notify if notify?
   end
 
   def feed_filtered?
@@ -35,6 +38,12 @@ class FeedInsertWorker
     end
   end
 
+  def notify?
+    return false if @type != :home || @status.reblog? || (@status.reply? && @status.in_reply_to_account_id != @status.account_id)
+
+    Follow.find_by(account: @follower, target_account: @status.account)&.notify?
+  end
+
   def perform_push
     case @type
     when :home
@@ -43,4 +52,8 @@ class FeedInsertWorker
       FeedManager.instance.push_to_list(@list, @status)
     end
   end
+
+  def perform_notify
+    NotifyService.new.call(@follower, :status, @status)
+  end
 end