See #170: added missing attributes on library Audio to make these parsable by Mastodon

This commit is contained in:
Eliot Berriot 2019-12-09 16:17:08 +01:00
parent 806ab2b3f0
commit 828f602b79
No known key found for this signature in database
GPG Key ID: 6B501DFD73514E14
2 changed files with 12 additions and 1 deletions

View File

@ -1170,6 +1170,10 @@ class UploadSerializer(jsonld.JsonLdSerializer):
},
],
"track": TrackSerializer(track, context={"include_ap_context": False}).data,
"to": contexts.AS.Public
if instance.library.privacy_level == "everyone"
else "",
"attributedTo": instance.library.actor.fid,
}
if instance.modification_date:
d["updated"] = instance.modification_date.isoformat()

View File

@ -5,6 +5,7 @@ import uuid
from django.core.paginator import Paginator
from django.utils import timezone
from funkwhale_api.federation import contexts
from funkwhale_api.federation import keys
from funkwhale_api.federation import jsonld
from funkwhale_api.federation import models
@ -932,7 +933,11 @@ def test_activity_pub_upload_serializer_validtes_library_actor(factories, mocker
def test_activity_pub_audio_serializer_to_ap(factories):
upload = factories["music.Upload"](
mimetype="audio/mp3", bitrate=42, duration=43, size=44
mimetype="audio/mp3",
bitrate=42,
duration=43,
size=44,
library__privacy_level="everyone",
)
expected = {
"@context": jsonld.get_default_context(),
@ -944,6 +949,8 @@ def test_activity_pub_audio_serializer_to_ap(factories):
"duration": upload.duration,
"bitrate": upload.bitrate,
"size": upload.size,
"to": contexts.AS.Public,
"attributedTo": upload.library.actor.fid,
"url": [
{
"href": utils.full_url(upload.listen_url),