commit: d3a4f5b7d7234efddc7fed608f6062b30e8a4c11
parent 9cc46c55382d2e8960016b52f72ad63b0e55dd16
Author: tusooa <tusooa@kazv.moe>
Date: Sat, 13 Jan 2024 22:23:21 +0000
Merge branch 'nil-contentMap' into 'develop'
Support objects with a nil contentMap (firefish)
Closes #3231
See merge request pleroma/pleroma!4030
Diffstat:
3 files changed, 18 insertions(+), 0 deletions(-)
diff --git a/changelog.d/nil-content-map.fix 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
@@ -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
@@ -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!()