diff options
| author | mkljczk <me@mkljczk.pl> | 2025-01-28 22:33:08 +0000 | 
|---|---|---|
| committer | mkljczk <me@mkljczk.pl> | 2025-01-28 22:33:08 +0000 | 
| commit | 011d70df792fff9ecae8cc92728b45c026fe9be3 (patch) | |
| tree | 9b9b601477fbf625168fc92b5796d1db29c78b27 /lib | |
| parent | acced73e5db1597fd1cd2fbf834d4399869209ec (diff) | |
| parent | 8cd77168726e2e44d7612c29914c6b6398ff675d (diff) | |
| download | pleroma-011d70df792fff9ecae8cc92728b45c026fe9be3.tar.gz pleroma-011d70df792fff9ecae8cc92728b45c026fe9be3.zip  | |
Merge branch 'fix-mastodon-edits' into 'develop'
Fix Mastodon incoming edits with inlined "likes"
See merge request pleroma/pleroma!4318
Diffstat (limited to 'lib')
5 files changed, 11 insertions, 0 deletions
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 1b5b2e8fb..ada1a4ea9 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 @@ -85,6 +85,7 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.ArticleNotePageValidator do      |> fix_replies()      |> fix_attachments()      |> CommonFixes.fix_quote_url() +    |> CommonFixes.fix_likes()      |> Transmogrifier.fix_emoji()      |> Transmogrifier.fix_content_map()    end diff --git a/lib/pleroma/web/activity_pub/object_validators/audio_image_video_validator.ex b/lib/pleroma/web/activity_pub/object_validators/audio_image_video_validator.ex index 65ac6bb93..034c6f33f 100644 --- a/lib/pleroma/web/activity_pub/object_validators/audio_image_video_validator.ex +++ b/lib/pleroma/web/activity_pub/object_validators/audio_image_video_validator.ex @@ -100,6 +100,7 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.AudioImageVideoValidator do      |> CommonFixes.fix_actor()      |> CommonFixes.fix_object_defaults()      |> CommonFixes.fix_quote_url() +    |> CommonFixes.fix_likes()      |> Transmogrifier.fix_emoji()      |> fix_url()      |> fix_content() diff --git a/lib/pleroma/web/activity_pub/object_validators/common_fixes.ex b/lib/pleroma/web/activity_pub/object_validators/common_fixes.ex index 4699029d4..a39110e10 100644 --- a/lib/pleroma/web/activity_pub/object_validators/common_fixes.ex +++ b/lib/pleroma/web/activity_pub/object_validators/common_fixes.ex @@ -114,6 +114,13 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.CommonFixes do    def fix_quote_url(data), do: data +  # On Mastodon, `"likes"` attribute includes an inlined `Collection` with `totalItems`, +  # not a list of users. +  # https://github.com/mastodon/mastodon/pull/32007 +  def fix_likes(%{"likes" => %{}} = data), do: Map.drop(data, ["likes"]) + +  def fix_likes(data), do: data +    # https://codeberg.org/fediverse/fep/src/branch/main/fep/e232/fep-e232.md    def object_link_tag?(%{          "type" => "Link", diff --git a/lib/pleroma/web/activity_pub/object_validators/event_validator.ex b/lib/pleroma/web/activity_pub/object_validators/event_validator.ex index ab204f69a..c87515e80 100644 --- a/lib/pleroma/web/activity_pub/object_validators/event_validator.ex +++ b/lib/pleroma/web/activity_pub/object_validators/event_validator.ex @@ -47,6 +47,7 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.EventValidator do      data      |> CommonFixes.fix_actor()      |> CommonFixes.fix_object_defaults() +    |> CommonFixes.fix_likes()      |> Transmogrifier.fix_emoji()    end diff --git a/lib/pleroma/web/activity_pub/object_validators/question_validator.ex b/lib/pleroma/web/activity_pub/object_validators/question_validator.ex index 7f9d4d648..21940f4f1 100644 --- a/lib/pleroma/web/activity_pub/object_validators/question_validator.ex +++ b/lib/pleroma/web/activity_pub/object_validators/question_validator.ex @@ -64,6 +64,7 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.QuestionValidator do      |> CommonFixes.fix_actor()      |> CommonFixes.fix_object_defaults()      |> CommonFixes.fix_quote_url() +    |> CommonFixes.fix_likes()      |> Transmogrifier.fix_emoji()      |> fix_closed()    end  | 
