@@ -30,11 +30,11 @@ defmodule Mobilizon.Federation.ActivityPub.Fetcher do
|
||||
{:ok, data}
|
||||
else
|
||||
{:ok, %Tesla.Env{status: 410}} ->
|
||||
Logger.warn("Resource at #{url} is 410 Gone")
|
||||
Logger.debug("Resource at #{url} is 410 Gone")
|
||||
{:error, "Gone"}
|
||||
|
||||
{:ok, %Tesla.Env{status: 404}} ->
|
||||
Logger.warn("Resource at #{url} is 404 Gone")
|
||||
Logger.debug("Resource at #{url} is 404 Gone")
|
||||
{:error, "Not found"}
|
||||
|
||||
{:ok, %Tesla.Env{} = res} ->
|
||||
@@ -75,7 +75,7 @@ defmodule Mobilizon.Federation.ActivityPub.Fetcher do
|
||||
@spec fetch_and_update(String.t(), Keyword.t()) :: {:ok, map(), struct()}
|
||||
def fetch_and_update(url, options \\ []) do
|
||||
with {:ok, data} when is_map(data) <- fetch(url, options),
|
||||
{:origin_check, true} <- {:origin_check, origin_check?(url, data)},
|
||||
{:origin_check, true} <- {:origin_check, origin_check(url, data)},
|
||||
params <- %{
|
||||
"type" => "Update",
|
||||
"to" => data["to"],
|
||||
@@ -87,7 +87,6 @@ defmodule Mobilizon.Federation.ActivityPub.Fetcher do
|
||||
Transmogrifier.handle_incoming(params)
|
||||
else
|
||||
{:origin_check, false} ->
|
||||
Logger.warn("Object origin check failed")
|
||||
{:error, "Object origin check failed"}
|
||||
|
||||
{:error, err} ->
|
||||
@@ -95,6 +94,17 @@ defmodule Mobilizon.Federation.ActivityPub.Fetcher do
|
||||
end
|
||||
end
|
||||
|
||||
@spec origin_check(String.t(), map()) :: boolean()
|
||||
defp origin_check(url, data) do
|
||||
if origin_check?(url, data) do
|
||||
true
|
||||
else
|
||||
Sentry.capture_message("Object origin check failed", extra: %{url: url, data: data})
|
||||
Logger.debug("Object origin check failed")
|
||||
false
|
||||
end
|
||||
end
|
||||
|
||||
@spec address_invalid(String.t()) :: false | {:error, :invalid_url}
|
||||
defp address_invalid(address) do
|
||||
with %URI{host: host, scheme: scheme} <- URI.parse(address),
|
||||
|
||||
Reference in New Issue
Block a user