wip:hangle not public playlist audience

This commit is contained in:
Petitminion 2025-04-26 16:55:44 +02:00
parent d6fd9ff6c4
commit acadfa4eca
1 changed files with 20 additions and 6 deletions

View File

@ -2402,6 +2402,7 @@ class PlaylistSerializer(jsonld.JsonLdSerializer):
"name": playlist.name, "name": playlist.name,
"attributedTo": playlist.actor.fid, "attributedTo": playlist.actor.fid,
"published": playlist.creation_date.isoformat(), "published": playlist.creation_date.isoformat(),
"audience": playlist.privacy_level,
"library": playlist.library.fid, "library": playlist.library.fid,
} }
payload["audience"] = ( payload["audience"] = (
@ -2432,14 +2433,16 @@ class PlaylistSerializer(jsonld.JsonLdSerializer):
"actor": actor, "actor": actor,
"name": validated_data["name"], "name": validated_data["name"],
"creation_date": validated_data["published"], "creation_date": validated_data["published"],
"privacy_level": validated_data["audience"],
"library": library, "library": library,
} }
if not actor.is_local: # to do : why I did this oO
ap_to_fw_data["privacy_level"] = ( # if not actor.is_local:
contexts.AS.Public # ap_to_fw_data["privacy_level"] = (
if validated_data.get("privacy_level", "") == "everyone" # contexts.AS.Public
else "" # if validated_data.get("privacy_level", "") == "everyone"
) # else ""
# )
playlist, created = playlists_models.Playlist.objects.update_or_create( playlist, created = playlists_models.Playlist.objects.update_or_create(
defaults=ap_to_fw_data, defaults=ap_to_fw_data,
@ -2453,6 +2456,17 @@ class PlaylistSerializer(jsonld.JsonLdSerializer):
return playlist return playlist
def validate(self, data):
validated_data = super().validate(data)
if validated_data["audience"] in [
"https://www.w3.org/ns/activitystreams#Public",
"everyone",
]:
validated_data["audience"] = "everyone"
else:
validated_data.pop("audience")
return validated_data
def update(self, instance, validated_data): def update(self, instance, validated_data):
return self.create(validated_data) return self.create(validated_data)