Allow the Remote Fetcher to attempt fetching an unreachable instance

This commit is contained in:
Mark Felder 2024-01-14 13:23:17 -05:00
commit 12c052551b
3 changed files with 11 additions and 30 deletions

View file

@ -3,32 +3,27 @@
# SPDX-License-Identifier: AGPL-3.0-only
defmodule Pleroma.Workers.RemoteFetcherWorker do
alias Pleroma.Instances
alias Pleroma.Object.Fetcher
use Pleroma.Workers.WorkerHelper, queue: "remote_fetcher"
@impl Oban.Worker
def perform(%Job{args: %{"op" => "fetch_remote", "id" => id} = args}) do
if Instances.reachable?(id) do
case Fetcher.fetch_object_from_id(id, depth: args["depth"]) do
{:ok, _object} ->
:ok
case Fetcher.fetch_object_from_id(id, depth: args["depth"]) do
{:ok, _object} ->
:ok
{:error, :forbidden} ->
{:discard, :forbidden}
{:error, :forbidden} ->
{:discard, :forbidden}
{:error, :not_found} ->
{:discard, :not_found}
{:error, :not_found} ->
{:discard, :not_found}
{:error, :allowed_depth} ->
{:discard, :allowed_depth}
{:error, :allowed_depth} ->
{:discard, :allowed_depth}
_ ->
:error
end
else
{:discard, "Unreachable instance"}
_ ->
:error
end
end