From 3b13bb5087adbab2065961b73e95e7aa05e8f48e Mon Sep 17 00:00:00 2001 From: mgabdev <> Date: Sun, 15 Nov 2020 13:02:45 -0600 Subject: [PATCH] Updates to FanOutOnWriteService, FeedInsertWorker MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit • Updates: - to FanOutOnWriteService, FeedInsertWorker --- app/services/fan_out_on_write_service.rb | 61 +----------------------- app/workers/feed_insert_worker.rb | 5 -- 2 files changed, 2 insertions(+), 64 deletions(-) diff --git a/app/services/fan_out_on_write_service.rb b/app/services/fan_out_on_write_service.rb index 38fdb11f..85505b05 100644 --- a/app/services/fan_out_on_write_service.rb +++ b/app/services/fan_out_on_write_service.rb @@ -6,25 +6,10 @@ class FanOutOnWriteService < BaseService def call(status) raise GabSocial::RaceConditionError if status.visibility.nil? - render_anonymous_payload(status) - - if status.direct_visibility? - deliver_to_own_conversation(status) - elsif status.limited_visibility? - deliver_to_mentioned_followers(status) + if status.direct_visibility? || status.limited_visibility? + # else deliver_to_self(status) if status.account.local? - deliver_to_followers(status) - deliver_to_lists(status) - end - - return if status.account.silenced? || !status.public_visibility? || status.reblog? - - return if status.reply? && status.in_reply_to_account_id != status.account_id - - - if status.account.is_pro || status.account.is_donor || status.account.is_investor || status.account.is_verified - deliver_to_pro(status) end end @@ -35,46 +20,4 @@ class FanOutOnWriteService < BaseService FeedManager.instance.push_to_home(status.account, status) end - def deliver_to_followers(status) - Rails.logger.debug "Delivering status #{status.id} to followers" - - status.account.followers_for_local_distribution.select(:id).reorder(nil).find_in_batches do |followers| - FeedInsertWorker.push_bulk(followers) do |follower| - [status.id, follower.id, :home] - end - end - end - - def deliver_to_lists(status) - Rails.logger.debug "Delivering status #{status.id} to lists" - - status.account.lists_for_local_distribution.select(:id).reorder(nil).find_in_batches do |lists| - FeedInsertWorker.push_bulk(lists) do |list| - [status.id, list.id, :list] - end - end - end - - def deliver_to_mentioned_followers(status) - Rails.logger.debug "Delivering status #{status.id} to limited followers" - - FeedInsertWorker.push_bulk(status.mentions.includes(:account).map(&:account).select { |mentioned_account| mentioned_account.local? && mentioned_account.following?(status.account) }) do |follower| - [status.id, follower.id, :home] - end - end - - def render_anonymous_payload(status) - @payload = InlineRenderer.render(status, nil, :status) - @payload = Oj.dump(event: :update, payload: @payload) - end - - def deliver_to_pro(status) - Rails.logger.debug "Delivering status #{status.id} to pro timeline" - - Redis.current.publish('timeline:pro', @payload) - end - - def deliver_to_own_conversation(status) - AccountConversation.add_status(status.account, status) - end end diff --git a/app/workers/feed_insert_worker.rb b/app/workers/feed_insert_worker.rb index 1ae3c877..ec0af0cd 100644 --- a/app/workers/feed_insert_worker.rb +++ b/app/workers/feed_insert_worker.rb @@ -10,9 +10,6 @@ class FeedInsertWorker case @type when :home @follower = Account.find(id) - when :list - @list = List.find(id) - @follower = @list.account end check_and_insert @@ -36,8 +33,6 @@ class FeedInsertWorker case @type when :home FeedManager.instance.push_to_home(@follower, @status) - when :list - FeedManager.instance.push_to_list(@list, @status) end end end