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,
"attributedTo": playlist.actor.fid,
"published": playlist.creation_date.isoformat(),
"audience": playlist.privacy_level,
"library": playlist.library.fid,
}
payload["audience"] = (
@ -2432,14 +2433,16 @@ class PlaylistSerializer(jsonld.JsonLdSerializer):
"actor": actor,
"name": validated_data["name"],
"creation_date": validated_data["published"],
"privacy_level": validated_data["audience"],
"library": library,
}
if not actor.is_local:
ap_to_fw_data["privacy_level"] = (
contexts.AS.Public
if validated_data.get("privacy_level", "") == "everyone"
else ""
)
# to do : why I did this oO
# if not actor.is_local:
# ap_to_fw_data["privacy_level"] = (
# contexts.AS.Public
# if validated_data.get("privacy_level", "") == "everyone"
# else ""
# )
playlist, created = playlists_models.Playlist.objects.update_or_create(
defaults=ap_to_fw_data,
@ -2453,6 +2456,17 @@ class PlaylistSerializer(jsonld.JsonLdSerializer):
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):
return self.create(validated_data)