diff options
author | tusooa <tusooa@kazv.moe> | 2022-09-11 17:10:26 +0000 |
---|---|---|
committer | tusooa <tusooa@kazv.moe> | 2022-09-11 17:10:26 +0000 |
commit | ac427de851ff8981710c671c12f66c3e756a4bc4 (patch) | |
tree | 6f225d6693667e00284bfd688ffbc0057ec63893 /lib | |
parent | 453a66f8c268580148475e11a7d4141ac7e93515 (diff) | |
parent | 0b19625bfba0ef4a9a4c97bada981dfb5c1edbf4 (diff) | |
download | pleroma-ac427de851ff8981710c671c12f66c3e756a4bc4.tar.gz pleroma-ac427de851ff8981710c671c12f66c3e756a4bc4.zip |
Merge branch 'fix/undo-boosts' into 'develop'
ObjectView: do not fetch an object for its ID
See merge request pleroma/pleroma!3753
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pleroma/object.ex | 15 | ||||
-rw-r--r-- | lib/pleroma/web/activity_pub/views/object_view.ex | 4 |
2 files changed, 12 insertions, 7 deletions
diff --git a/lib/pleroma/object.ex b/lib/pleroma/object.ex index fee3f1842..38accae5d 100644 --- a/lib/pleroma/object.ex +++ b/lib/pleroma/object.ex @@ -144,7 +144,7 @@ defmodule Pleroma.Object do Logger.debug("Backtrace: #{inspect(Process.info(:erlang.self(), :current_stacktrace))}") end - def normalize(_, options \\ [fetch: false]) + def normalize(_, options \\ [fetch: false, id_only: false]) # If we pass an Activity to Object.normalize(), we can try to use the preloaded object. # Use this whenever possible, especially when walking graphs in an O(N) loop! @@ -172,10 +172,15 @@ defmodule Pleroma.Object do def normalize(%{"id" => ap_id}, options), do: normalize(ap_id, options) def normalize(ap_id, options) when is_binary(ap_id) do - if Keyword.get(options, :fetch) do - Fetcher.fetch_object_from_id!(ap_id, options) - else - get_cached_by_ap_id(ap_id) + cond do + Keyword.get(options, :id_only) -> + ap_id + + Keyword.get(options, :fetch) -> + Fetcher.fetch_object_from_id!(ap_id, options) + + true -> + get_cached_by_ap_id(ap_id) end end diff --git a/lib/pleroma/web/activity_pub/views/object_view.ex b/lib/pleroma/web/activity_pub/views/object_view.ex index f848aba3a..63caa915c 100644 --- a/lib/pleroma/web/activity_pub/views/object_view.ex +++ b/lib/pleroma/web/activity_pub/views/object_view.ex @@ -29,11 +29,11 @@ defmodule Pleroma.Web.ActivityPub.ObjectView do def render("object.json", %{object: %Activity{} = activity}) do base = Pleroma.Web.ActivityPub.Utils.make_json_ld_header() - object = Object.normalize(activity, fetch: false) + object_id = Object.normalize(activity, id_only: true) additional = Transmogrifier.prepare_object(activity.data) - |> Map.put("object", object.data["id"]) + |> Map.put("object", object_id) Map.merge(base, additional) end |