70 lines
3.2 KiB
Diff
70 lines
3.2 KiB
Diff
From 0f9c9aac380a3864ee0099e2d398b395feda9fdc Mon Sep 17 00:00:00 2001
|
||
From: Oneric <oneric@oneric.stub>
|
||
Date: Sat, 9 Nov 2024 16:52:12 +0100
|
||
Subject: [PATCH] Completely omit id for anonymous objects
|
||
MIME-Version: 1.0
|
||
Content-Type: text/plain; charset=UTF-8
|
||
Content-Transfer-Encoding: 8bit
|
||
|
||
Current AP spec demands anonymous objects to have an id value,
|
||
but explicitly set it to JSON null. Howeveras it turns out this is
|
||
incompatible with JSON-LD requiring `@id` to be a string and thus AP
|
||
spec is incompatible iwth the Ativity Streams spec it is based on.
|
||
This is an issue for (the few) AP implementers actually performing
|
||
JSON-LD processing, like IceShrimp.NET.
|
||
This was uncovered by IceShrimp.NET’s zotan due to our adoption of
|
||
anonymous objects for emoj in f1018867097e6f293d8b2b5b6935f0a7ebf99bd0.
|
||
|
||
The issues is being discussed by W3C, and will most likely be resolved
|
||
via an errata redefining anonymous objects to completely omit the id
|
||
field just like transient objects already do. See:
|
||
https://github.com/w3c/activitypub/issues/476
|
||
|
||
Fixes: https://akkoma.dev/AkkomaGang/akkoma/issues/848
|
||
---
|
||
lib/pleroma/web/activity_pub/transmogrifier.ex | 3 +--
|
||
.../web/activity_pub/transmogrifier/note_handling_test.exs | 1 -
|
||
test/pleroma/web/activity_pub/views/user_view_test.exs | 1 -
|
||
3 files changed, 1 insertion(+), 4 deletions(-)
|
||
|
||
diff --git a/lib/pleroma/web/activity_pub/transmogrifier.ex b/lib/pleroma/web/activity_pub/transmogrifier.ex
|
||
index 75c1f0f0c..5c4db39b9 100644
|
||
--- a/lib/pleroma/web/activity_pub/transmogrifier.ex
|
||
+++ b/lib/pleroma/web/activity_pub/transmogrifier.ex
|
||
@@ -950,8 +950,7 @@ defp build_emoji_tag({name, url}) do
|
||
"icon" => %{"url" => "#{URI.encode(url)}", "type" => "Image"},
|
||
"name" => ":" <> name <> ":",
|
||
"type" => "Emoji",
|
||
- "updated" => "1970-01-01T00:00:00Z",
|
||
- "id" => nil
|
||
+ "updated" => "1970-01-01T00:00:00Z"
|
||
}
|
||
end
|
||
|
||
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 92a096c2d..234a48990 100644
|
||
--- a/test/pleroma/web/activity_pub/transmogrifier/note_handling_test.exs
|
||
+++ b/test/pleroma/web/activity_pub/transmogrifier/note_handling_test.exs
|
||
@@ -698,7 +698,6 @@ test "take_emoji_tags/1" do
|
||
assert Transmogrifier.take_emoji_tags(user) == [
|
||
%{
|
||
"icon" => %{"type" => "Image", "url" => "https://example.org/firefox.png"},
|
||
- "id" => nil,
|
||
"name" => ":firefox:",
|
||
"type" => "Emoji",
|
||
"updated" => "1970-01-01T00:00:00Z"
|
||
diff --git a/test/pleroma/web/activity_pub/views/user_view_test.exs b/test/pleroma/web/activity_pub/views/user_view_test.exs
|
||
index 7e251e510..4283fb0c8 100644
|
||
--- a/test/pleroma/web/activity_pub/views/user_view_test.exs
|
||
+++ b/test/pleroma/web/activity_pub/views/user_view_test.exs
|
||
@@ -47,7 +47,6 @@ test "Renders with emoji tags" do
|
||
"tag" => [
|
||
%{
|
||
"icon" => %{"type" => "Image", "url" => "/test"},
|
||
- "id" => nil,
|
||
"name" => ":bib:",
|
||
"type" => "Emoji",
|
||
"updated" => "1970-01-01T00:00:00Z"
|
||
--
|
||
2.43.0
|
||
|