logo

pleroma

My custom branche(s) on git.pleroma.social/pleroma/pleroma git clone https://hacktivis.me/git/pleroma.git
commit: bc62a352820cf0cf56852e187b157b1d609a3ab3
parent 6633ec816fd89a3b0937f8474c5c070e88960a94
Author: Haelwenn <contact+git.pleroma.social@hacktivis.me>
Date:   Sat, 28 Aug 2021 16:07:35 +0000

Merge branch 'features/ingestion-no-nil' into 'develop'

ObjectValidator.stringify_keys: filter out nil values

See merge request pleroma/pleroma!3506

Diffstat:

Mlib/pleroma/web/activity_pub/object_validator.ex1+
Mlib/pleroma/web/push/impl.ex4++--
Mtest/pleroma/web/activity_pub/object_validators/chat_validation_test.exs2+-
Mtest/pleroma/web/activity_pub/transmogrifier/audio_handling_test.exs6+-----
Mtest/pleroma/web/activity_pub/transmogrifier/video_handling_test.exs18+++---------------
5 files changed, 8 insertions(+), 23 deletions(-)

diff --git a/lib/pleroma/web/activity_pub/object_validator.ex b/lib/pleroma/web/activity_pub/object_validator.ex @@ -213,6 +213,7 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidator do def stringify_keys(object) when is_map(object) do object + |> Enum.filter(fn {_, v} -> v != nil end) |> Map.new(fn {key, val} -> {to_string(key), stringify_keys(val)} end) end diff --git a/lib/pleroma/web/push/impl.ex b/lib/pleroma/web/push/impl.ex @@ -124,8 +124,8 @@ defmodule Pleroma.Web.Push.Impl do def format_body(activity, actor, object, mastodon_type \\ nil) - def format_body(_activity, actor, %{data: %{"type" => "ChatMessage", "content" => content}}, _) do - case content do + def format_body(_activity, actor, %{data: %{"type" => "ChatMessage"} = data}, _) do + case data["content"] do nil -> "@#{actor.nickname}: (Attachment)" content -> "@#{actor.nickname}: #{Utils.scrub_html_and_truncate(content, 80)}" end diff --git a/test/pleroma/web/activity_pub/object_validators/chat_validation_test.exs b/test/pleroma/web/activity_pub/object_validators/chat_validation_test.exs @@ -68,7 +68,7 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.ChatValidationTest do test "validates for a basic object we build", %{valid_chat_message: valid_chat_message} do assert {:ok, object, _meta} = ObjectValidator.validate(valid_chat_message, []) - assert Map.put(valid_chat_message, "attachment", nil) == object + assert valid_chat_message == object assert match?(%{"firefox" => _}, object["emoji"]) end diff --git a/test/pleroma/web/activity_pub/transmogrifier/audio_handling_test.exs b/test/pleroma/web/activity_pub/transmogrifier/audio_handling_test.exs @@ -73,16 +73,12 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier.AudioHandlingTest do %{ "mediaType" => "audio/ogg", "type" => "Link", - "name" => nil, - "blurhash" => nil, "url" => [ %{ "href" => "https://channels.tests.funkwhale.audio/api/v1/listen/3901e5d8-0445-49d5-9711-e096cf32e515/?upload=42342395-0208-4fee-a38d-259a6dae0871&download=false", "mediaType" => "audio/ogg", - "type" => "Link", - "width" => nil, - "height" => nil + "type" => "Link" } ] } diff --git a/test/pleroma/web/activity_pub/transmogrifier/video_handling_test.exs b/test/pleroma/web/activity_pub/transmogrifier/video_handling_test.exs @@ -53,16 +53,12 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier.VideoHandlingTest do %{ "type" => "Link", "mediaType" => "video/mp4", - "name" => nil, - "blurhash" => nil, "url" => [ %{ "href" => "https://peertube.moe/static/webseed/df5f464b-be8d-46fb-ad81-2d4c2d1630e3-480.mp4", "mediaType" => "video/mp4", - "type" => "Link", - "width" => nil, - "height" => nil + "type" => "Link" } ] } @@ -78,16 +74,12 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier.VideoHandlingTest do %{ "type" => "Link", "mediaType" => "video/mp4", - "name" => nil, - "blurhash" => nil, "url" => [ %{ "href" => "https://framatube.org/static/webseed/6050732a-8a7a-43d4-a6cd-809525a1d206-1080.mp4", "mediaType" => "video/mp4", - "type" => "Link", - "width" => nil, - "height" => nil + "type" => "Link" } ] } @@ -110,16 +102,12 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier.VideoHandlingTest do %{ "type" => "Link", "mediaType" => "video/mp4", - "name" => nil, - "blurhash" => nil, "url" => [ %{ "href" => "https://peertube.stream/static/streaming-playlists/hls/abece3c3-b9c6-47f4-8040-f3eed8c602e6/abece3c3-b9c6-47f4-8040-f3eed8c602e6-1080-fragmented.mp4", "mediaType" => "video/mp4", - "type" => "Link", - "width" => nil, - "height" => nil + "type" => "Link" } ] }