diff options
author | tusooa <tusooa@kazv.moe> | 2024-01-13 22:23:21 +0000 |
---|---|---|
committer | tusooa <tusooa@kazv.moe> | 2024-01-13 22:23:21 +0000 |
commit | d3a4f5b7d7234efddc7fed608f6062b30e8a4c11 (patch) | |
tree | f7ad12e961971087ee1be3f288723709d8b2bc0e | |
parent | 9cc46c55382d2e8960016b52f72ad63b0e55dd16 (diff) | |
parent | 7651198508cc40adfab27969f196e4496bd441da (diff) | |
download | pleroma-d3a4f5b7d7234efddc7fed608f6062b30e8a4c11.tar.gz pleroma-d3a4f5b7d7234efddc7fed608f6062b30e8a4c11.zip |
Merge branch 'nil-contentMap' into 'develop'
Support objects with a nil contentMap (firefish)
Closes #3231
See merge request pleroma/pleroma!4030
-rw-r--r-- | changelog.d/nil-content-map.fix | 1 | ||||
-rw-r--r-- | lib/pleroma/web/activity_pub/transmogrifier.ex | 4 | ||||
-rw-r--r-- | test/pleroma/web/activity_pub/transmogrifier/note_handling_test.exs | 13 |
3 files changed, 18 insertions, 0 deletions
diff --git a/changelog.d/nil-content-map.fix b/changelog.d/nil-content-map.fix new file mode 100644 index 000000000..d4943bf74 --- /dev/null +++ b/changelog.d/nil-content-map.fix @@ -0,0 +1 @@ +Support objects with a null contentMap (firefish) diff --git a/lib/pleroma/web/activity_pub/transmogrifier.ex b/lib/pleroma/web/activity_pub/transmogrifier.ex index 35f3aea03..68f3e1399 100644 --- a/lib/pleroma/web/activity_pub/transmogrifier.ex +++ b/lib/pleroma/web/activity_pub/transmogrifier.ex @@ -339,6 +339,10 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier do def fix_tag(object), do: object + def fix_content_map(%{"contentMap" => nil} = object) do + Map.drop(object, ["contentMap"]) + end + # content map usually only has one language so this will do for now. def fix_content_map(%{"contentMap" => content_map} = object) do content_groups = Map.to_list(content_map) diff --git a/test/pleroma/web/activity_pub/transmogrifier/note_handling_test.exs b/test/pleroma/web/activity_pub/transmogrifier/note_handling_test.exs index 9750fa25f..2507fa2b0 100644 --- a/test/pleroma/web/activity_pub/transmogrifier/note_handling_test.exs +++ b/test/pleroma/web/activity_pub/transmogrifier/note_handling_test.exs @@ -221,6 +221,19 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier.NoteHandlingTest do "<p><span class=\"h-card\"><a href=\"http://localtesting.pleroma.lol/users/lain\" class=\"u-url mention\">@<span>lain</span></a></span></p>" end + test "it works for incoming notices with a nil contentMap (firefish)" do + data = + File.read!("test/fixtures/mastodon-post-activity-contentmap.json") + |> Jason.decode!() + |> Map.put("contentMap", nil) + + {:ok, %Activity{data: data, local: false}} = Transmogrifier.handle_incoming(data) + object = Object.normalize(data["object"], fetch: false) + + assert object.data["content"] == + "<p><span class=\"h-card\"><a href=\"http://localtesting.pleroma.lol/users/lain\" class=\"u-url mention\">@<span>lain</span></a></span></p>" + end + test "it works for incoming notices with to/cc not being an array (kroeg)" do data = File.read!("test/fixtures/kroeg-post-activity.json") |> Jason.decode!() |