diff --git a/app/services/fan_out_on_write_service.rb b/app/services/fan_out_on_write_service.rb index 83acb49fd2d..64769230b7c 100644 --- a/app/services/fan_out_on_write_service.rb +++ b/app/services/fan_out_on_write_service.rb @@ -40,6 +40,7 @@ class FanOutOnWriteService < BaseService deliver_to_self! unless @options[:skip_notifications] + notify_quoted_account! notify_mentioned_accounts! notify_about_update! if update? end @@ -69,6 +70,12 @@ class FanOutOnWriteService < BaseService FeedManager.instance.push_to_home(@account, @status, update: update?) if @account.local? end + def notify_quoted_account! + return unless @status.quote&.quoted_account&.local? && @status.quote&.accepted? + + LocalNotificationWorker.perform_async(@status.quote.quoted_account_id, @status.quote.id, 'Quote', 'quote') + end + def notify_mentioned_accounts! @status.active_mentions.where.not(id: @options[:silenced_account_ids] || []).joins(:account).merge(Account.local).select(:id, :account_id).reorder(nil).find_in_batches do |mentions| LocalNotificationWorker.push_bulk(mentions) do |mention|