summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authortusooa <tusooa@kazv.moe>2022-09-11 17:10:26 +0000
committertusooa <tusooa@kazv.moe>2022-09-11 17:10:26 +0000
commitac427de851ff8981710c671c12f66c3e756a4bc4 (patch)
tree6f225d6693667e00284bfd688ffbc0057ec63893 /lib
parent453a66f8c268580148475e11a7d4141ac7e93515 (diff)
parent0b19625bfba0ef4a9a4c97bada981dfb5c1edbf4 (diff)
downloadpleroma-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.ex15
-rw-r--r--lib/pleroma/web/activity_pub/views/object_view.ex4
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