projects
/
akkoma
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into develop
[akkoma]
/
lib
/
pleroma
/
object
/
fetcher.ex
diff --git
a/lib/pleroma/object/fetcher.ex
b/lib/pleroma/object/fetcher.ex
index bb9388d4f905e802605da7d58e5bec28b8d008ad..fffbf2bbb23062bdb983e922d95bf0e6f1aed069 100644
(file)
--- a/
lib/pleroma/object/fetcher.ex
+++ b/
lib/pleroma/object/fetcher.ex
@@
-1,4
+1,5
@@
defmodule Pleroma.Object.Fetcher do
defmodule Pleroma.Object.Fetcher do
+ alias Pleroma.HTTP
alias Pleroma.Object
alias Pleroma.Object.Containment
alias Pleroma.Web.ActivityPub.Transmogrifier
alias Pleroma.Object
alias Pleroma.Object.Containment
alias Pleroma.Web.ActivityPub.Transmogrifier
@@
-6,8
+7,6
@@
defmodule Pleroma.Object.Fetcher do
require Logger
require Logger
- @httpoison Application.get_env(:pleroma, :httpoison)
-
defp reinject_object(data) do
Logger.debug("Reinjecting object #{data["id"]}")
defp reinject_object(data) do
Logger.debug("Reinjecting object #{data["id"]}")
@@
-23,7
+22,7
@@
defmodule Pleroma.Object.Fetcher do
# TODO:
# This will create a Create activity, which we need internally at the moment.
# TODO:
# This will create a Create activity, which we need internally at the moment.
- def fetch_object_from_id(id) do
+ def fetch_object_from_id(id
, options \\ []
) do
if object = Object.get_cached_by_ap_id(id) do
{:ok, object}
else
if object = Object.get_cached_by_ap_id(id) do
{:ok, object}
else
@@
-39,7
+38,7
@@
defmodule Pleroma.Object.Fetcher do
"object" => data
},
:ok <- Containment.contain_origin(id, params),
"object" => data
},
:ok <- Containment.contain_origin(id, params),
- {:ok, activity} <- Transmogrifier.handle_incoming(params),
+ {:ok, activity} <- Transmogrifier.handle_incoming(params
, options
),
{:object, _data, %Object{} = object} <-
{:object, data, Object.normalize(activity, false)} do
{:ok, object}
{:object, _data, %Object{} = object} <-
{:object, data, Object.normalize(activity, false)} do
{:ok, object}
@@
-64,8
+63,8
@@
defmodule Pleroma.Object.Fetcher do
end
end
end
end
- def fetch_object_from_id!(id) do
- with {:ok, object} <- fetch_object_from_id(id) do
+ def fetch_object_from_id!(id
, options \\ []
) do
+ with {:ok, object} <- fetch_object_from_id(id
, options
) do
object
else
_e ->
object
else
_e ->
@@
-78,7
+77,7
@@
defmodule Pleroma.Object.Fetcher do
with true <- String.starts_with?(id, "http"),
{:ok, %{body: body, status: code}} when code in 200..299 <-
with true <- String.starts_with?(id, "http"),
{:ok, %{body: body, status: code}} when code in 200..299 <-
-
@httpoison
.get(
+
HTTP
.get(
id,
[{:Accept, "application/activity+json"}]
),
id,
[{:Accept, "application/activity+json"}]
),
@@
-86,6
+85,9
@@
defmodule Pleroma.Object.Fetcher do
:ok <- Containment.contain_origin_from_id(id, data) do
{:ok, data}
else
:ok <- Containment.contain_origin_from_id(id, data) do
{:ok, data}
else
+ {:ok, %{status: code}} when code in [404, 410] ->
+ {:error, "Object has been deleted"}
+
e ->
{:error, e}
end
e ->
{:error, e}
end