about summary refs log tree commit diff
path: root/app/services
diff options
context:
space:
mode:
Diffstat (limited to 'app/services')
-rw-r--r--app/services/process_mentions_service.rb5
-rw-r--r--app/services/unfollow_service.rb11
2 files changed, 14 insertions, 2 deletions
diff --git a/app/services/process_mentions_service.rb b/app/services/process_mentions_service.rb
index a374206eb..19de37717 100644
--- a/app/services/process_mentions_service.rb
+++ b/app/services/process_mentions_service.rb
@@ -33,6 +33,7 @@ class ProcessMentionsService < BaseService
     end
 
     status.save!
+    check_for_spam(status)
 
     mentions.each { |mention| create_notification(mention) }
   end
@@ -61,4 +62,8 @@ class ProcessMentionsService < BaseService
   def resolve_account_service
     ResolveAccountService.new
   end
+
+  def check_for_spam(status)
+    SpamCheck.perform(status)
+  end
 end
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