about summary refs log tree commit diff
path: root/app
diff options
context:
space:
mode:
authormultiple creatures <dev@multiple-creature.party>2020-02-16 02:18:37 -0600
committermultiple creatures <dev@multiple-creature.party>2020-02-16 02:18:37 -0600
commit484c4d0c5dc347b79209f6870340df07d49bb5df (patch)
tree8b79c009288dadb4ec99b72203d64dbd08a6a2da /app
parentcc484f7271314723034be458c5c062045f4dff29 (diff)
do not try to process mentions in hidden posts
Diffstat (limited to 'app')
-rw-r--r--app/services/process_mentions_service.rb2
-rw-r--r--app/workers/post_status_worker.rb5
2 files changed, 4 insertions, 3 deletions
diff --git a/app/services/process_mentions_service.rb b/app/services/process_mentions_service.rb
index bca00d575..ac39464fb 100644
--- a/app/services/process_mentions_service.rb
+++ b/app/services/process_mentions_service.rb
@@ -8,7 +8,7 @@ class ProcessMentionsService < BaseService
   # remote users
   # @param [Status] status
   def call(status, skip_process: false, skip_notify: false)
-    return unless status.local? && (!status.draft? || !status.hidden)
+    return if status.hidden || !status.local? || status.draft?
 
     @status  = status
     mentions = Mention.where(status: status).to_a
diff --git a/app/workers/post_status_worker.rb b/app/workers/post_status_worker.rb
index f5ba1d3d2..68cae75fa 100644
--- a/app/workers/post_status_worker.rb
+++ b/app/workers/post_status_worker.rb
@@ -9,7 +9,8 @@ class PostStatusWorker
 
     status.update(options.slice(:visibility, :local_only, :reject_replies, :hidden).compact)
     status.reload
-    process_mentions_service.call(status, skip_process: options[:process_mentions] != true) unless options[:nomentions]
+
+    process_mentions_service.call(status, skip_process: options[:process_mentions] != true) unless options[:nomentions] || status.hidden
 
     LinkCrawlWorker.perform_async(status.id) unless options[:nocrawl] || status.spoiler_text.present?
     DistributionWorker.perform_async(status.id) unless options[:distribute] == false
@@ -20,7 +21,7 @@ class PostStatusWorker
 
     PollExpirationNotifyWorker.perform_at(status.poll.expires_at, status.poll.id) if status.poll
 
-    return true if !status.reply? || status.account.id == status.in_reply_to_account_id
+    return true if !status.reply? || status.account.id == status.in_reply_to_account_id || status.hidden
     ActivityTracker.increment('activity:interactions')
     return if status.account.following?(status.in_reply_to_account_id)
     PotentialFriendshipTracker.record(status.account.id, status.in_reply_to_account_id, :reply)