about summary refs log tree commit diff
path: root/app/workers
diff options
context:
space:
mode:
Diffstat (limited to 'app/workers')
-rw-r--r--app/workers/activitypub/distribute_poll_update_worker.rb2
-rw-r--r--app/workers/feed_insert_worker.rb8
-rw-r--r--app/workers/scheduler/feed_cleanup_scheduler.rb5
3 files changed, 14 insertions, 1 deletions
diff --git a/app/workers/activitypub/distribute_poll_update_worker.rb b/app/workers/activitypub/distribute_poll_update_worker.rb
index 25dee4ee2..601075ea6 100644
--- a/app/workers/activitypub/distribute_poll_update_worker.rb
+++ b/app/workers/activitypub/distribute_poll_update_worker.rb
@@ -10,7 +10,7 @@ class ActivityPub::DistributePollUpdateWorker
     @status  = Status.find(status_id)
     @account = @status.account
 
-    return unless @status.preloadable_poll
+    return if @status.preloadable_poll.nil? || @status.local_only?
 
     ActivityPub::DeliveryWorker.push_bulk(inboxes) do |inbox_url|
       [payload, @account.id, inbox_url]
diff --git a/app/workers/feed_insert_worker.rb b/app/workers/feed_insert_worker.rb
index 40bc9cb6e..9483510aa 100644
--- a/app/workers/feed_insert_worker.rb
+++ b/app/workers/feed_insert_worker.rb
@@ -14,6 +14,8 @@ class FeedInsertWorker
     when :list
       @list     = List.find(id)
       @follower = @list.account
+    when :direct
+      @account  = Account.find(id)
     end
 
     check_and_insert
@@ -38,6 +40,8 @@ class FeedInsertWorker
       FeedManager.instance.filter?(:home, @status, @follower)
     when :list
       FeedManager.instance.filter?(:list, @status, @list)
+    when :direct
+      FeedManager.instance.filter?(:direct, @status, @account)
     end
   end
 
@@ -53,6 +57,8 @@ class FeedInsertWorker
       FeedManager.instance.push_to_home(@follower, @status, update: update?)
     when :list
       FeedManager.instance.push_to_list(@list, @status, update: update?)
+    when :direct
+      FeedManager.instance.push_to_direct(@account, @status, update: update?)
     end
   end
 
@@ -62,6 +68,8 @@ class FeedInsertWorker
       FeedManager.instance.unpush_from_home(@follower, @status, update: true)
     when :list
       FeedManager.instance.unpush_from_list(@list, @status, update: true)
+    when :direct
+      FeedManager.instance.unpush_from_direct(@account, @status, update: true)
     end
   end
 
diff --git a/app/workers/scheduler/feed_cleanup_scheduler.rb b/app/workers/scheduler/feed_cleanup_scheduler.rb
index aa0cc8b8d..78adc97e2 100644
--- a/app/workers/scheduler/feed_cleanup_scheduler.rb
+++ b/app/workers/scheduler/feed_cleanup_scheduler.rb
@@ -9,6 +9,7 @@ class Scheduler::FeedCleanupScheduler
   def perform
     clean_home_feeds!
     clean_list_feeds!
+    clean_direct_feeds!
   end
 
   private
@@ -21,6 +22,10 @@ class Scheduler::FeedCleanupScheduler
     feed_manager.clean_feeds!(:list, inactive_list_ids)
   end
 
+  def clean_direct_feeds!
+    feed_manager.clean_feeds!(:direct, inactive_account_ids)
+  end
+
   def inactive_account_ids
     @inactive_account_ids ||= User.confirmed.inactive.pluck(:account_id)
   end