diff options
author | Eugen Rochko <eugen@zeonfederated.com> | 2019-09-17 08:44:45 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-09-17 08:44:45 +0200 |
commit | 38dc51b2d68e3e03f429419f7318e868fa24c49d (patch) | |
tree | 02012b8582eb2eb7acf8fe66cc953bd903fdf135 /app/services | |
parent | c21386cff5ff6d86d8887e4a5dde1cf910ab84a0 (diff) |
Fix Move handler queuing jobs that will fail if account is suspended (#11864)
Don't put Move handler on cooldown if it didn't run. Skip unmerging from timelines to save unnecessary work.
Diffstat (limited to 'app/services')
-rw-r--r-- | app/services/unfollow_service.rb | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/app/services/unfollow_service.rb b/app/services/unfollow_service.rb index b7033d7eb..151f3674f 100644 --- a/app/services/unfollow_service.rb +++ b/app/services/unfollow_service.rb @@ -6,9 +6,12 @@ class UnfollowService < BaseService # Unfollow and notify the remote user # @param [Account] source_account Where to unfollow from # @param [Account] target_account Which to unfollow - def call(source_account, target_account) + # @param [Hash] options + # @option [Boolean] :skip_unmerge + def call(source_account, target_account, options = {}) @source_account = source_account @target_account = target_account + @options = options unfollow! || undo_follow_request! end @@ -21,9 +24,11 @@ class UnfollowService < BaseService return unless follow follow.destroy! + create_notification(follow) if !@target_account.local? && @target_account.activitypub? create_reject_notification(follow) if @target_account.local? && !@source_account.local? && @source_account.activitypub? - UnmergeWorker.perform_async(@target_account.id, @source_account.id) + UnmergeWorker.perform_async(@target_account.id, @source_account.id) unless @options[:skip_unmerge] + follow end @@ -33,7 +38,9 @@ class UnfollowService < BaseService return unless follow_request follow_request.destroy! + create_notification(follow_request) unless @target_account.local? + follow_request end |