diff --git a/lib/pleroma/activity.ex b/lib/pleroma/activity.ex index 026a0ea2a..01c9df53b 100644 --- a/lib/pleroma/activity.ex +++ b/lib/pleroma/activity.ex @@ -293,7 +293,6 @@ defmodule Pleroma.Activity do end def get_quoted_activity_from_object(%Object{data: %{"quoteUri" => ap_id}}) do - IO.puts(ap_id) get_create_by_object_ap_id_with_object(ap_id) end diff --git a/lib/pleroma/web/activity_pub/object_validators/article_note_page_validator.ex b/lib/pleroma/web/activity_pub/object_validators/article_note_page_validator.ex index 5e377c294..68a478464 100644 --- a/lib/pleroma/web/activity_pub/object_validators/article_note_page_validator.ex +++ b/lib/pleroma/web/activity_pub/object_validators/article_note_page_validator.ex @@ -156,12 +156,14 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.ArticleNotePageValidator do |> fix_replies() |> fix_source() |> fix_misskey_content() + |> Transmogrifier.fix_quote_url() |> Transmogrifier.fix_attachments() |> Transmogrifier.fix_emoji() |> Transmogrifier.fix_content_map() end def changeset(struct, data) do + IO.inspect(data) data = fix(data) struct diff --git a/lib/pleroma/web/activity_pub/object_validators/common_fields.ex b/lib/pleroma/web/activity_pub/object_validators/common_fields.ex index 37ec860dc..1eaf572b9 100644 --- a/lib/pleroma/web/activity_pub/object_validators/common_fields.ex +++ b/lib/pleroma/web/activity_pub/object_validators/common_fields.ex @@ -59,6 +59,7 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.CommonFields do field(:like_count, :integer, default: 0) field(:announcement_count, :integer, default: 0) field(:inReplyTo, ObjectValidators.ObjectID) + field(:quoteUri, ObjectValidators.ObjectID) field(:url, ObjectValidators.Uri) field(:likes, {:array, ObjectValidators.ObjectID}, default: []) diff --git a/lib/pleroma/web/activity_pub/transmogrifier.ex b/lib/pleroma/web/activity_pub/transmogrifier.ex index ff73005c7..d14647211 100644 --- a/lib/pleroma/web/activity_pub/transmogrifier.ex +++ b/lib/pleroma/web/activity_pub/transmogrifier.ex @@ -31,6 +31,7 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier do Modifies an incoming AP object (mastodon format) to our internal format. """ def fix_object(object, options \\ []) do + IO.inspect(object) object |> strip_internal_fields() |> fix_actor() @@ -43,7 +44,6 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier do |> fix_content_map() |> fix_addressing() |> fix_summary() - |> fix_quote_url() end def fix_summary(%{"summary" => nil} = object) do @@ -599,6 +599,12 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier do def set_reply_to_uri(obj), do: obj + def set_quote_url(%{"quoteUri" => quote} = object) when is_binary(quote) do + Map.put(object, "quoteUrl", quote) + end + + def set_quote_url(obj), do: obj + @doc """ Serialized Mastodon-compatible `replies` collection containing _self-replies_. Based on Mastodon's ActivityPub::NoteSerializer#replies. @@ -653,6 +659,7 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier do |> prepare_attachments |> set_conversation |> set_reply_to_uri + |> set_quote_url() |> set_replies |> strip_internal_fields |> strip_internal_tags diff --git a/lib/pleroma/web/api_spec/schemas/status.ex b/lib/pleroma/web/api_spec/schemas/status.ex index 91fe7b0b5..16c047738 100644 --- a/lib/pleroma/web/api_spec/schemas/status.ex +++ b/lib/pleroma/web/api_spec/schemas/status.ex @@ -222,7 +222,7 @@ defmodule Pleroma.Web.ApiSpec.Schemas.Status do type: :string, description: "The source content of the status" }, - mediaType: %{ + mediaType: %Schema{ type: :string, description: "The source MIME type of the status", example: "text/plain"