about summary refs log tree commit diff
path: root/app/services/process_mentions_service.rb
diff options
context:
space:
mode:
authorThibG <thib@sitedethib.com>2017-11-07 14:47:39 +0100
committerEugen Rochko <eugen@zeonfederated.com>2017-11-07 14:47:39 +0100
commit84cfee2488ed0d795b69ffe51e7260548c2d6af3 (patch)
tree62ccf15ebc12f3cedaeafdcb0c963bd77aa26a6c /app/services/process_mentions_service.rb
parent7bea1530f4b396ae384502b3fcbf8d34f22005e1 (diff)
Do not process undeliverable mentions (#5598)
* Resolve remote accounts when mentioned even if they are already known

This commit reduces the risk of not having up-to-date public key or protocol
information for a remote account, which is required to deliver toots
(especially direct messages).

* Do not add mentions in private messages for remote users we cannot deliver to

Mastodon does not deliver private and direct toots to OStatus users, as there
is no guarantee the remote software understands the toot's privacy. However,
users currently do not get any feedback on it (Mastodon won't attempt delivery,
but the toot will be displayed exactly the same way to the user).

This change introduces *some* feedback by not processing mentions that are
not going to be delivered. A long-term solution is still needed to have
delivery receipts or at least some better indication of what is going on, but
at least an user can see *something* is up.
Diffstat (limited to 'app/services/process_mentions_service.rb')
-rw-r--r--app/services/process_mentions_service.rb2
1 files changed, 1 insertions, 1 deletions
diff --git a/app/services/process_mentions_service.rb b/app/services/process_mentions_service.rb
index 17c01a91d..aa649652c 100644
--- a/app/services/process_mentions_service.rb
+++ b/app/services/process_mentions_service.rb
@@ -17,7 +17,7 @@ class ProcessMentionsService < BaseService
         mentioned_account = nil
       end
 
-      next if mentioned_account.nil?
+      next if mentioned_account.nil? || (mentioned_account.ostatus? && status.stream_entry.hidden?)
 
       mentioned_account.mentions.where(status: status).first_or_create(status: status)
     end