about summary refs log tree commit diff
path: root/app/workers/refollow_worker.rb
diff options
context:
space:
mode:
authorThibG <thib@sitedethib.com>2020-01-02 20:52:39 +0100
committerEugen Rochko <eugen@zeonfederated.com>2020-01-02 20:52:39 +0100
commitaa138ea350dfb2a47ef0b29eff811c6da402a830 (patch)
tree0ba4cb5f90c5fb42062db9b9b0427f768b93aad6 /app/workers/refollow_worker.rb
parent09d54d1f626163fcc6e282544dfc9939fd3cdfd3 (diff)
Fix RefollowWorker not keeping show_reblogs setting (#12707)
* Fix RefollowWorker not keeping show_reblogs setting

* Fix RefollowWorker
Diffstat (limited to 'app/workers/refollow_worker.rb')
-rw-r--r--app/workers/refollow_worker.rb9
1 files changed, 6 insertions, 3 deletions
diff --git a/app/workers/refollow_worker.rb b/app/workers/refollow_worker.rb
index 12f2bf671..9b07ce1b5 100644
--- a/app/workers/refollow_worker.rb
+++ b/app/workers/refollow_worker.rb
@@ -7,15 +7,18 @@ class RefollowWorker
 
   def perform(target_account_id)
     target_account = Account.find(target_account_id)
-    return unless target_account.protocol == :activitypub
+    return unless target_account.activitypub?
+
+    target_account.passive_relationships.where(account: Account.where(domain: nil)).includes(:account).reorder(nil).find_each do |follow|
+      reblogs = follow.show_reblogs?
 
-    target_account.followers.where(domain: nil).reorder(nil).find_each do |follower|
       # Locally unfollow remote account
+      follower = follow.account
       follower.unfollow!(target_account)
 
       # Schedule re-follow
       begin
-        FollowService.new.call(follower, target_account)
+        FollowService.new.call(follower, target_account, reblogs: reblogs)
       rescue Mastodon::NotPermittedError, ActiveRecord::RecordNotFound, Mastodon::UnexpectedResponseError, HTTP::Error, OpenSSL::SSL::SSLError
         next
       end