From 99c4b5b75ad8856f6e05e6a838abacc755a7b183 Mon Sep 17 00:00:00 2001
From: ThibG <thib@sitedethib.com>
Date: Tue, 12 Feb 2019 05:10:43 +0100
Subject: [PATCH] =?UTF-8?q?Move=20sending=20account=20Delete=20to=20anyone?=
 =?UTF-8?q?=20but=20the=20account's=20followers=20to=20the=20pull=CC=80=20?=
 =?UTF-8?q?queue=20(#10016)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 app/services/suspend_account_service.rb                | 10 +++++++++-
 .../activitypub/low_priority_delivery_worker.rb        |  5 +++++
 2 files changed, 14 insertions(+), 1 deletion(-)
 create mode 100644 app/workers/activitypub/low_priority_delivery_worker.rb

diff --git a/app/services/suspend_account_service.rb b/app/services/suspend_account_service.rb
index 1bc2314de..fc3bc03a5 100644
--- a/app/services/suspend_account_service.rb
+++ b/app/services/suspend_account_service.rb
@@ -102,6 +102,10 @@ class SuspendAccountService < BaseService
     ActivityPub::DeliveryWorker.push_bulk(delivery_inboxes) do |inbox_url|
       [delete_actor_json, @account.id, inbox_url]
     end
+
+    ActivityPub::LowPriorityDeliveryWorker.push_bulk(low_priority_delivery_inboxes) do |inbox_url|
+      [delete_actor_json, @account.id, inbox_url]
+    end
   end
 
   def delete_actor_json
@@ -117,7 +121,11 @@ class SuspendAccountService < BaseService
   end
 
   def delivery_inboxes
-    Account.inboxes + Relay.enabled.pluck(:inbox_url)
+    @delivery_inboxes ||= @account.followers.inboxes + Relay.enabled.pluck(:inbox_url)
+  end
+
+  def low_priority_delivery_inboxes
+    Account.inboxes - delivery_inboxes
   end
 
   def associations_for_destruction
diff --git a/app/workers/activitypub/low_priority_delivery_worker.rb b/app/workers/activitypub/low_priority_delivery_worker.rb
new file mode 100644
index 000000000..a141b8f78
--- /dev/null
+++ b/app/workers/activitypub/low_priority_delivery_worker.rb
@@ -0,0 +1,5 @@
+# frozen_string_literal: true
+
+class ActivityPub::LowPriorityDeliveryWorker < ActivityPub::DeliveryWorker
+  sidekiq_options queue: 'pull', retry: 8, dead: false
+end