Fix quote_visible attribute

This commit is contained in:
tusooa 2023-07-12 23:56:54 -04:00
parent a8b2f9205d
commit 08608afca5
No known key found for this signature in database
GPG Key ID: 42AEC43D48433C51
2 changed files with 9 additions and 12 deletions

View File

@ -312,12 +312,16 @@ def render("show.json", %{activity: %{data: %{"object" => _object}} = activity}
# Here the implicit index of the current content is 0
chrono_order = history_len - 1
quote_id = get_quote_id(activity)
quote_activity = get_quote(activity, opts)
quote_id =
case quote_activity do
%Activity{id: id} -> id
_ -> nil
end
quote_post =
if visible_for_user?(quote_activity, opts[:for]) do
if visible_for_user?(quote_activity, opts[:for]) and opts[:show_quote] != false do
quote_rendering_opts = Map.merge(opts, %{activity: quote_activity, show_quote: false})
render("show.json", quote_rendering_opts)
else
@ -671,8 +675,6 @@ def get_reply_to(%{data: %{"object" => _object}} = activity, _) do
end
end
def get_quote(_activity, %{show_quote: false}), do: nil
def get_quote(activity, %{quoted_activities: quoted_activities}) do
object = Object.normalize(activity, fetch: false)
@ -692,13 +694,6 @@ def get_quote(%{data: %{"object" => _object}} = activity, _) do
end
end
defp get_quote_id(activity) do
case get_quote(activity, %{}) do
%Activity{id: id} -> id
_ -> nil
end
end
def render_content(%{data: %{"name" => name}} = object) when not is_nil(name) and name != "" do
url = object.data["url"] || object.data["id"]

View File

@ -438,11 +438,13 @@ test "a quote post" do
assert status.pleroma.quote.id == to_string(quote_post.id)
assert status.pleroma.quote_id == to_string(quote_post.id)
assert status.pleroma.quote_url == Object.normalize(quote_post).data["id"]
assert status.pleroma.quote_visible
# Quotes don't go more than one level deep
refute status.pleroma.quote.pleroma.quote
assert status.pleroma.quote.pleroma.quote_id == to_string(post.id)
assert status.pleroma.quote.pleroma.quote_url == Object.normalize(post).data["id"]
assert status.pleroma.quote.pleroma.quote_visible
# In an index
[status] = StatusView.render("index.json", %{activities: [quoted_quote_post], as: :activity})