From 51457aa8891f992750edce4b82d219570021a560 Mon Sep 17 00:00:00 2001
From: Eliot Berriot <contact@eliotberriot.com>
Date: Fri, 9 Nov 2018 19:51:47 +0100
Subject: [PATCH] Fix #553: Advertise public libraries properly in ActivityPub
 representations

---
 api/funkwhale_api/federation/routes.py      | 2 +-
 api/funkwhale_api/federation/serializers.py | 2 +-
 api/tests/federation/test_serializers.py    | 4 ++--
 changes/changelog.d/553.bugfix              | 1 +
 4 files changed, 5 insertions(+), 4 deletions(-)
 create mode 100644 changes/changelog.d/553.bugfix

diff --git a/api/funkwhale_api/federation/routes.py b/api/funkwhale_api/federation/routes.py
index b757d4f92..d8877de1f 100644
--- a/api/funkwhale_api/federation/routes.py
+++ b/api/funkwhale_api/federation/routes.py
@@ -82,7 +82,7 @@ def inbox_undo_follow(payload, context):
     serializer = serializers.UndoFollowSerializer(data=payload, context=context)
     if not serializer.is_valid(raise_exception=context.get("raise_exception", False)):
         logger.debug(
-            "Discarding invalid follow undo from {}: %s",
+            "Discarding invalid follow undo from %s: %s",
             context["actor"].fid,
             serializer.errors,
         )
diff --git a/api/funkwhale_api/federation/serializers.py b/api/funkwhale_api/federation/serializers.py
index 61574a57e..9f4bad010 100644
--- a/api/funkwhale_api/federation/serializers.py
+++ b/api/funkwhale_api/federation/serializers.py
@@ -560,7 +560,7 @@ class LibrarySerializer(PaginatedCollectionSerializer):
         r = super().to_representation(conf)
         r["audience"] = (
             "https://www.w3.org/ns/activitystreams#Public"
-            if library.privacy_level == "public"
+            if library.privacy_level == "everyone"
             else ""
         )
         r["followers"] = library.followers_url
diff --git a/api/tests/federation/test_serializers.py b/api/tests/federation/test_serializers.py
index c43647070..d3441df5d 100644
--- a/api/tests/federation/test_serializers.py
+++ b/api/tests/federation/test_serializers.py
@@ -476,7 +476,7 @@ def test_collection_page_serializer(factories):
 
 
 def test_music_library_serializer_to_ap(factories):
-    library = factories["music.Library"]()
+    library = factories["music.Library"](privacy_level="everyone")
     # pending, errored and skippednot included
     factories["music.Upload"](import_status="pending")
     factories["music.Upload"](import_status="errored")
@@ -488,11 +488,11 @@ def test_music_library_serializer_to_ap(factories):
             "https://w3id.org/security/v1",
             {},
         ],
+        "audience": "https://www.w3.org/ns/activitystreams#Public",
         "type": "Library",
         "id": library.fid,
         "name": library.name,
         "summary": library.description,
-        "audience": "",
         "actor": library.actor.fid,
         "totalItems": 0,
         "current": library.fid + "?page=1",
diff --git a/changes/changelog.d/553.bugfix b/changes/changelog.d/553.bugfix
new file mode 100644
index 000000000..3747bf62e
--- /dev/null
+++ b/changes/changelog.d/553.bugfix
@@ -0,0 +1 @@
+Advertise public libraries properly in ActivityPub representations (#553)
-- 
GitLab