diff options
author | Fire Demon <firedemon@creature.cafe> | 2020-08-02 07:29:17 -0500 |
---|---|---|
committer | Fire Demon <firedemon@creature.cafe> | 2020-08-30 05:45:17 -0500 |
commit | a834d8f61f4becb40ed1b764d598263c64682fee (patch) | |
tree | d88a2dd144c8381502cb78798ad7edc0c6efa8c8 | |
parent | 8fea4f74ed1e98db835f35be3cbb3735233e0346 (diff) |
[Federation] Do not force-reveal passive mentions of secondary audience - these are participants allowed to access a limited-audience thread, not Mastodon mentions
-rw-r--r-- | app/services/resolve_mentions_service.rb | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/app/services/resolve_mentions_service.rb b/app/services/resolve_mentions_service.rb index 06238c44e..176caa8fe 100644 --- a/app/services/resolve_mentions_service.rb +++ b/app/services/resolve_mentions_service.rb @@ -8,9 +8,10 @@ class ResolveMentionsService < BaseService # @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) - mentions = Mention.includes(:account).where(id: mentions.pluck(:id), accounts: { suspended_at: nil }).to_set - implicit_mention_acct_ids = mentions.pluck(:account_id).to_set + mentions = Mention.includes(:account).where(id: mentions.pluck(:id), accounts: { suspended_at: nil }) + implicit_mention_acct_ids = mentions.active.pluck(:account_id).to_set text = status.text if text.nil? + mentions = mentions.to_set text.gsub(Account::MENTION_RE) do |match| username, domain = Regexp.last_match(1).split('@') |