defmodule Pleroma.Object.Fetcher do
alias Pleroma.HTTP
+ alias Pleroma.Instances
alias Pleroma.Maps
alias Pleroma.Object
alias Pleroma.Object.Containment
{:error, %Tesla.Mock.Error{}} ->
nil
- {:error, "Object has been deleted"} ->
+ {:error, {"Object has been deleted", _id, _code}} ->
nil
{:reject, reason} ->
- Logger.info("Rejected #{id} while fetching: #{inspect(reason)}")
+ Logger.debug("Rejected #{id} while fetching: #{inspect(reason)}")
nil
e ->
{:ok, body} <- get_object(id),
{:ok, data} <- safe_json_decode(body),
:ok <- Containment.contain_origin_from_id(id, data) do
+ unless Instances.reachable?(id) do
+ Instances.set_reachable(id)
+ end
+
{:ok, data}
else
{:scheme, _} ->
end
{:ok, %{status: code}} when code in [404, 410] ->
- {:error, "Object has been deleted"}
+ {:error, {"Object has been deleted", id, code}}
{:error, e} ->
{:error, e}