diff options
author | ThibG <thib@sitedethib.com> | 2018-10-24 11:28:25 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-10-24 11:28:25 +0200 |
commit | 0e8de56a22aee089da8aa1c64bab941bc5911e5d (patch) | |
tree | ac3f4100e27a9341c32c15e07661af841c547ec0 /app/services | |
parent | 4739e0f090a04235669ef81fa432ae90bb62f4c4 (diff) | |
parent | ed8d06212f439b9fe2f170a6f43d6be6d586ff80 (diff) |
Merge pull request #792 from ThibG/glitch-soc/merge-upstream
Merge upstream changes
Diffstat (limited to 'app/services')
-rw-r--r-- | app/services/batched_remove_status_service.rb | 2 | ||||
-rw-r--r-- | app/services/fan_out_on_write_service.rb | 4 | ||||
-rw-r--r-- | app/services/notify_service.rb | 5 | ||||
-rw-r--r-- | app/services/remove_status_service.rb | 2 |
4 files changed, 10 insertions, 3 deletions
diff --git a/app/services/batched_remove_status_service.rb b/app/services/batched_remove_status_service.rb index ebb4034aa..b7296cf7c 100644 --- a/app/services/batched_remove_status_service.rb +++ b/app/services/batched_remove_status_service.rb @@ -12,7 +12,7 @@ class BatchedRemoveStatusService < BaseService def call(statuses) statuses = Status.where(id: statuses.map(&:id)).includes(:account, :stream_entry).flat_map { |status| [status] + status.reblogs.includes(:account, :stream_entry).to_a } - @mentions = statuses.map { |s| [s.id, s.mentions.includes(:account).to_a] }.to_h + @mentions = statuses.map { |s| [s.id, s.active_mentions.includes(:account).to_a] }.to_h @tags = statuses.map { |s| [s.id, s.tags.pluck(:name)] }.to_h @stream_entry_batches = [] diff --git a/app/services/fan_out_on_write_service.rb b/app/services/fan_out_on_write_service.rb index ab520276b..63cab8403 100644 --- a/app/services/fan_out_on_write_service.rb +++ b/app/services/fan_out_on_write_service.rb @@ -14,6 +14,8 @@ class FanOutOnWriteService < BaseService deliver_to_mentioned_followers(status) deliver_to_direct_timelines(status) deliver_to_own_conversation(status) + elsif status.limited_visibility? + deliver_to_mentioned_followers(status) else deliver_to_followers(status) deliver_to_lists(status) @@ -57,7 +59,7 @@ class FanOutOnWriteService < BaseService end def deliver_to_mentioned_followers(status) - Rails.logger.debug "Delivering status #{status.id} to mentioned followers" + Rails.logger.debug "Delivering status #{status.id} to limited followers" status.mentions.includes(:account).each do |mention| mentioned_account = mention.account diff --git a/app/services/notify_service.rb b/app/services/notify_service.rb index 63bf8f17a..49022a844 100644 --- a/app/services/notify_service.rb +++ b/app/services/notify_service.rb @@ -59,9 +59,14 @@ class NotifyService < BaseService @notification.target_status.in_reply_to_account_id == @recipient.id && @notification.target_status.thread&.direct_visibility? end + def from_staff? + @notification.from_account.local? && @notification.from_account.user.present? && @notification.from_account.user.staff? + end + def optional_non_following_and_direct? direct_message? && @recipient.user.settings.interactions['must_be_following_dm'] && + !from_staff? && !following_sender? && !response_to_recipient? end diff --git a/app/services/remove_status_service.rb b/app/services/remove_status_service.rb index 1a53093b8..4bee86c8a 100644 --- a/app/services/remove_status_service.rb +++ b/app/services/remove_status_service.rb @@ -8,7 +8,7 @@ class RemoveStatusService < BaseService @status = status @account = status.account @tags = status.tags.pluck(:name).to_a - @mentions = status.mentions.includes(:account).to_a + @mentions = status.active_mentions.includes(:account).to_a @reblogs = status.reblogs.to_a @stream_entry = status.stream_entry @options = options |