Return quote_url through the API, don't render quotes more than 1 level deep

This commit is contained in:
Alex Gleason 2022-01-23 13:55:25 -06:00 committed by tusooa
commit 4bcdf0cf4f
No known key found for this signature in database
GPG key ID: 42AEC43D48433C51
4 changed files with 41 additions and 4 deletions

View file

@ -198,6 +198,12 @@ defmodule Pleroma.Web.ApiSpec.Schemas.Status do
nullable: true,
description: "Quoted status (if any)"
},
quote_url: %Schema{
type: :string,
format: :uri,
nullable: true,
description: "URL of the quoted status"
},
local: %Schema{
type: :boolean,
description: "`true` if the post was made on the local instance"

View file

@ -316,7 +316,7 @@ defmodule Pleroma.Web.MastodonAPI.StatusView do
quote_post =
if quote_activity do
quote_rendering_opts = Map.put(opts, :activity, quote_activity)
quote_rendering_opts = Map.merge(opts, %{activity: quote_activity, show_quote: false})
render("show.json", quote_rendering_opts)
else
nil
@ -431,6 +431,7 @@ defmodule Pleroma.Web.MastodonAPI.StatusView do
context: object.data["context"],
in_reply_to_account_acct: reply_to_user && reply_to_user.nickname,
quote: quote_post,
quote_url: object.data["quoteUrl"],
content: %{"text/plain" => content_plaintext},
spoiler_text: %{"text/plain" => summary},
expires_at: expires_at,
@ -666,6 +667,10 @@ defmodule Pleroma.Web.MastodonAPI.StatusView do
end
end
def get_quote(_activity, %{show_quote: false}) do
nil
end
def get_quote(activity, %{quoted_activities: quoted_activities}) do
object = Object.normalize(activity, fetch: false)
quoted_activities[object.data["quoteUrl"]]