about summary refs log tree commit diff
path: root/app/services/resolve_mentions_service.rb
diff options
context:
space:
mode:
authorFire Demon <firedemon@creature.cafe>2020-08-15 02:12:04 -0500
committerFire Demon <firedemon@creature.cafe>2020-08-30 05:45:18 -0500
commit8efbea953c436af514f6b39eb22316100e522c90 (patch)
treefbe01bfdaef58c3582dde3ef569a53df72b97aab /app/services/resolve_mentions_service.rb
parent0e935eb05412712c3f667bcd9e08a820e532a169 (diff)
[Federation] Force out-of-body mentions to be delivered without a notification
Diffstat (limited to 'app/services/resolve_mentions_service.rb')
-rw-r--r--app/services/resolve_mentions_service.rb20
1 files changed, 2 insertions, 18 deletions
diff --git a/app/services/resolve_mentions_service.rb b/app/services/resolve_mentions_service.rb
index 2fcb176b2..e51e9f1ef 100644
--- a/app/services/resolve_mentions_service.rb
+++ b/app/services/resolve_mentions_service.rb
@@ -5,9 +5,8 @@ class ResolveMentionsService < BaseService
   # @param [Status] status Status to attach to mention pointers
   # @option [String] :text Text containing mentions to resolve (default: use status text)
   # @option [Enumerable] :mentions Additional mentions to include
-  # @option [Boolean] :reveal_implicit_mentions Append implicit mentions to text
   # @return [Array] Array containing text with mentions resolved (String) and mention pointers (Set)
-  def call(status, text: nil, mentions: [], reveal_implicit_mentions: true)
+  def call(status, text: nil, mentions: [])
     mentions                  = Mention.includes(:account).where(id: mentions.pluck(:id), accounts: { suspended_at: nil }).or(status.mentions.includes(:account))
     implicit_mention_acct_ids = mentions.active.pluck(:account_id).to_set
     text                      = status.text if text.nil?
@@ -45,12 +44,7 @@ class ResolveMentionsService < BaseService
       "@#{mentioned_account.acct}"
     end
 
-    if reveal_implicit_mentions && implicit_mention_acct_ids.present?
-      implicit_mention_accts = Account.where(id: implicit_mention_acct_ids, suspended_at: nil)
-      formatted_accts = format_mentions(implicit_mention_accts)
-      formatted_accts = Formatter.instance.linkify(formatted_accts, implicit_mention_accts) unless status.local?
-      text << formatted_accts
-    end
+    Mention.where(id: implicit_mention_acct_ids).update_all(silent: true)
 
     [text, mentions]
   end
@@ -64,14 +58,4 @@ class ResolveMentionsService < BaseService
   def resolve_account_service
     ResolveAccountService.new
   end
-
-  def format_mentions(accounts)
-    "\n\n#{accounts_to_mentions(accounts).join(' ')}"
-  end
-
-  def accounts_to_mentions(accounts)
-    accounts.reorder(:username, :domain).pluck(:username, :domain).map do |username, domain|
-      domain.blank? ? "@#{username}" : "@#{username}@#{domain}"
-    end
-  end
 end