From 503319ec8f9c387ba758a5f8ac8d0249c9420c03 Mon Sep 17 00:00:00 2001 From: Fire Demon Date: Thu, 20 Aug 2020 06:21:24 -0500 Subject: [Federation] Fall back to server representative if fetching a public resource with another local account fails --- app/workers/fetch_reply_worker.rb | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'app/workers') diff --git a/app/workers/fetch_reply_worker.rb b/app/workers/fetch_reply_worker.rb index b93ac6c7a..67db042fd 100644 --- a/app/workers/fetch_reply_worker.rb +++ b/app/workers/fetch_reply_worker.rb @@ -6,11 +6,12 @@ class FetchReplyWorker sidekiq_options queue: 'pull', retry: 3 - def perform(child_url) - if child_url.is_a?(String) - FetchRemoteStatusService.new.call(child_url, nil) - elsif child_url.is_a?(Enumerable) - child_url.each { |url| FetchRemoteStatusService.new.call(url, nil) } - end + def perform(child_url, account_id = nil) + account = account_id.blank? ? nil : Account.find_by(id: account_id) + on_behalf_of = account.blank? ? nil : account.followers.local.random.first + + FetchRemoteStatusService.new.call(child_url, nil, on_behalf_of) + rescue ActiveRecord::RecordNotFound + nil end end -- cgit