From 2bc71eecfd6e7de8acf1bcd553cd7ac1906a5560 Mon Sep 17 00:00:00 2001 From: Eliot Berriot <contact@eliotberriot.com> Date: Tue, 14 Jan 2020 14:00:08 +0100 Subject: [PATCH] See #170: add a description field on tracks, albums, tracks --- api/funkwhale_api/common/factories.py | 9 ++ .../common/migrations/0006_content.py | 21 +++++ api/funkwhale_api/common/models.py | 32 +++++++ api/funkwhale_api/common/mutations.py | 6 +- api/funkwhale_api/common/serializers.py | 10 ++ api/funkwhale_api/common/utils.py | 64 +++++++++++++ api/funkwhale_api/federation/serializers.py | 86 ++++++++++++++---- api/funkwhale_api/federation/views.py | 12 ++- api/funkwhale_api/manage/serializers.py | 12 ++- api/funkwhale_api/manage/views.py | 15 +++ api/funkwhale_api/music/metadata.py | 35 +++++++ .../migrations/0046_auto_20200113_1018.py | 30 ++++++ api/funkwhale_api/music/models.py | 11 +++ api/funkwhale_api/music/mutations.py | 59 ++++++++---- api/funkwhale_api/music/serializers.py | 20 +++- api/funkwhale_api/music/tasks.py | 17 ++++ api/funkwhale_api/music/views.py | 15 +++ api/requirements/base.txt | 2 + api/tests/common/test_models.py | 14 +++ api/tests/common/test_serializers.py | 15 +++ api/tests/common/test_utils.py | 25 +++++ api/tests/federation/test_serializers.py | 50 +++++++++- api/tests/music/sample.flac | Bin 91522 -> 91522 bytes api/tests/music/test.m4a | Bin 51512 -> 51512 bytes api/tests/music/test.mp3 | Bin 297745 -> 297745 bytes api/tests/music/test.ogg | Bin 15918 -> 15918 bytes api/tests/music/test.opus | Bin 15643 -> 15643 bytes api/tests/music/test_metadata.py | 14 +++ api/tests/music/test_mutations.py | 24 +++++ api/tests/music/test_serializers.py | 18 ++++ api/tests/music/test_tasks.py | 29 ++++++ api/tests/music/test_theora.ogg | Bin 22785 -> 159349 bytes api/tests/music/test_views.py | 19 ++++ front/src/components/library/EditForm.vue | 13 ++- front/src/edits.js | 17 +++- front/src/views/admin/library/AlbumDetail.vue | 6 ++ .../src/views/admin/library/ArtistDetail.vue | 6 ++ front/src/views/admin/library/TrackDetail.vue | 6 ++ 38 files changed, 653 insertions(+), 59 deletions(-) create mode 100644 api/funkwhale_api/common/migrations/0006_content.py create mode 100644 api/funkwhale_api/music/migrations/0046_auto_20200113_1018.py diff --git a/api/funkwhale_api/common/factories.py b/api/funkwhale_api/common/factories.py index d6a06360..9af602de 100644 --- a/api/funkwhale_api/common/factories.py +++ b/api/funkwhale_api/common/factories.py @@ -26,3 +26,12 @@ class AttachmentFactory(NoUpdateOnCreate, factory.django.DjangoModelFactory): class Meta: model = "common.Attachment" + + +@registry.register +class CommonFactory(NoUpdateOnCreate, factory.django.DjangoModelFactory): + text = factory.Faker("paragraph") + content_type = "text/plain" + + class Meta: + model = "common.Content" diff --git a/api/funkwhale_api/common/migrations/0006_content.py b/api/funkwhale_api/common/migrations/0006_content.py new file mode 100644 index 00000000..9cab5e76 --- /dev/null +++ b/api/funkwhale_api/common/migrations/0006_content.py @@ -0,0 +1,21 @@ +# Generated by Django 2.2.7 on 2020-01-13 10:14 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('common', '0005_auto_20191125_1421'), + ] + + operations = [ + migrations.CreateModel( + name='Content', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('text', models.CharField(blank=True, max_length=5000, null=True)), + ('content_type', models.CharField(max_length=100)), + ], + ), + ] diff --git a/api/funkwhale_api/common/models.py b/api/funkwhale_api/common/models.py index 4e4fc14d..8750d5d7 100644 --- a/api/funkwhale_api/common/models.py +++ b/api/funkwhale_api/common/models.py @@ -24,6 +24,14 @@ from . import utils from . import validators +CONTENT_TEXT_MAX_LENGTH = 5000 +CONTENT_TEXT_SUPPORTED_TYPES = [ + "text/html", + "text/markdown", + "text/plain", +] + + @Field.register_lookup class NotEqual(Lookup): lookup_name = "ne" @@ -273,6 +281,15 @@ class MutationAttachment(models.Model): unique_together = ("attachment", "mutation") +class Content(models.Model): + """ + A text content that can be associated to other models, like a description, a summary, etc. + """ + + text = models.CharField(max_length=CONTENT_TEXT_MAX_LENGTH, blank=True, null=True) + content_type = models.CharField(max_length=100) + + @receiver(models.signals.post_save, sender=Attachment) def warm_attachment_thumbnails(sender, instance, **kwargs): if not instance.file or not settings.CREATE_IMAGE_THUMBNAILS: @@ -302,3 +319,18 @@ def trigger_mutation_post_init(sender, instance, created, **kwargs): except AttributeError: return handler(instance) + + +CONTENT_FKS = { + "music.Track": ["description"], + "music.Album": ["description"], + "music.Artist": ["description"], +} + + +@receiver(models.signals.post_delete, sender=None) +def remove_attached_content(sender, instance, **kwargs): + fk_fields = CONTENT_FKS.get(instance._meta.label, []) + for field in fk_fields: + if getattr(instance, "{}_id".format(field)): + getattr(instance, field).delete() diff --git a/api/funkwhale_api/common/mutations.py b/api/funkwhale_api/common/mutations.py index 13a5a97d..586e86ec 100644 --- a/api/funkwhale_api/common/mutations.py +++ b/api/funkwhale_api/common/mutations.py @@ -86,7 +86,6 @@ class MutationSerializer(serializers.Serializer): class UpdateMutationSerializer(serializers.ModelSerializer, MutationSerializer): serialized_relations = {} - previous_state_handlers = {} def __init__(self, *args, **kwargs): # we force partial mode, because update mutations are partial @@ -141,9 +140,12 @@ class UpdateMutationSerializer(serializers.ModelSerializer, MutationSerializer): obj, *list(validated_data.keys()), serialized_relations=self.serialized_relations, - handlers=self.previous_state_handlers, + handlers=self.get_previous_state_handlers(), ) + def get_previous_state_handlers(self): + return {} + def get_update_previous_state(obj, *fields, serialized_relations={}, handlers={}): if not fields: diff --git a/api/funkwhale_api/common/serializers.py b/api/funkwhale_api/common/serializers.py index fa889f9e..38be2b5b 100644 --- a/api/funkwhale_api/common/serializers.py +++ b/api/funkwhale_api/common/serializers.py @@ -11,6 +11,7 @@ from django.utils.encoding import smart_text from django.utils.translation import ugettext_lazy as _ from . import models +from . import utils class RelatedField(serializers.RelatedField): @@ -308,3 +309,12 @@ class AttachmentSerializer(serializers.Serializer): return models.Attachment.objects.create( file=validated_data["file"], actor=validated_data["actor"] ) + + +class ContentSerializer(serializers.Serializer): + text = serializers.CharField(max_length=models.CONTENT_TEXT_MAX_LENGTH) + content_type = serializers.ChoiceField(choices=models.CONTENT_TEXT_SUPPORTED_TYPES,) + html = serializers.SerializerMethodField() + + def get_html(self, o): + return utils.render_html(o.text, o.content_type) diff --git a/api/funkwhale_api/common/utils.py b/api/funkwhale_api/common/utils.py index 4bb18c40..f3f3cc0f 100644 --- a/api/funkwhale_api/common/utils.py +++ b/api/funkwhale_api/common/utils.py @@ -1,5 +1,7 @@ from django.utils.deconstruct import deconstructible +import bleach.sanitizer +import markdown import os import shutil import uuid @@ -241,3 +243,65 @@ def join_queries_or(left, right): return left | right else: return right + + +def render_markdown(text): + return markdown.markdown(text, extensions=["nl2br"]) + + +HTMl_CLEANER = bleach.sanitizer.Cleaner( + strip=True, + tags=[ + "p", + "a", + "abbr", + "acronym", + "b", + "blockquote", + "code", + "em", + "i", + "li", + "ol", + "strong", + "ul", + ], +) + +HTML_LINKER = bleach.linkifier.Linker() + + +def clean_html(html): + return HTMl_CLEANER.clean(html) + + +def render_html(text, content_type): + rendered = render_markdown(text) + if content_type == "text/html": + rendered = text + elif content_type == "text/markdown": + rendered = render_markdown(text) + else: + rendered = render_markdown(text) + rendered = HTML_LINKER.linkify(rendered) + return clean_html(rendered).strip().replace("\n", "") + + +@transaction.atomic +def attach_content(obj, field, content_data): + from . import models + + existing = getattr(obj, "{}_id".format(field)) + + if existing: + getattr(obj, field).delete() + + if not content_data: + return + + content_obj = models.Content.objects.create( + text=content_data["text"][: models.CONTENT_TEXT_MAX_LENGTH], + content_type=content_data["content_type"], + ) + setattr(obj, field, content_obj) + obj.save(update_fields=[field]) diff --git a/api/funkwhale_api/federation/serializers.py b/api/funkwhale_api/federation/serializers.py index 6305bd07..2f593111 100644 --- a/api/funkwhale_api/federation/serializers.py +++ b/api/funkwhale_api/federation/serializers.py @@ -9,7 +9,7 @@ from django.db import transaction from rest_framework import serializers -from funkwhale_api.common import utils as funkwhale_utils +from funkwhale_api.common import utils as common_utils from funkwhale_api.common import models as common_models from funkwhale_api.music import licenses from funkwhale_api.music import models as music_models @@ -611,9 +611,9 @@ class PaginatedCollectionSerializer(jsonld.JsonLdSerializer): def to_representation(self, conf): paginator = Paginator(conf["items"], conf.get("page_size", 20)) - first = funkwhale_utils.set_query_parameter(conf["id"], page=1) + first = common_utils.set_query_parameter(conf["id"], page=1) current = first - last = funkwhale_utils.set_query_parameter(conf["id"], page=paginator.num_pages) + last = common_utils.set_query_parameter(conf["id"], page=paginator.num_pages) d = { "id": conf["id"], # XXX Stable release: remove the obsolete actor field @@ -646,7 +646,7 @@ class LibrarySerializer(PaginatedCollectionSerializer): ) class Meta: - jsonld_mapping = funkwhale_utils.concat_dicts( + jsonld_mapping = common_utils.concat_dicts( PAGINATED_COLLECTION_JSONLD_MAPPING, { "name": jsonld.first_val(contexts.AS.name), @@ -740,11 +740,11 @@ class CollectionPageSerializer(jsonld.JsonLdSerializer): def to_representation(self, conf): page = conf["page"] - first = funkwhale_utils.set_query_parameter(conf["id"], page=1) - last = funkwhale_utils.set_query_parameter( + first = common_utils.set_query_parameter(conf["id"], page=1) + last = common_utils.set_query_parameter( conf["id"], page=page.paginator.num_pages ) - id = funkwhale_utils.set_query_parameter(conf["id"], page=page.number) + id = common_utils.set_query_parameter(conf["id"], page=page.number) d = { "id": id, "partOf": conf["id"], @@ -764,12 +764,12 @@ class CollectionPageSerializer(jsonld.JsonLdSerializer): } if page.has_previous(): - d["prev"] = funkwhale_utils.set_query_parameter( + d["prev"] = common_utils.set_query_parameter( conf["id"], page=page.previous_page_number() ) if page.has_next(): - d["next"] = funkwhale_utils.set_query_parameter( + d["next"] = common_utils.set_query_parameter( conf["id"], page=page.next_page_number() ) d.update(get_additional_fields(conf)) @@ -784,6 +784,8 @@ MUSIC_ENTITY_JSONLD_MAPPING = { "musicbrainzId": jsonld.first_val(contexts.FW.musicbrainzId), "attributedTo": jsonld.first_id(contexts.AS.attributedTo), "tags": jsonld.raw(contexts.AS.tag), + "mediaType": jsonld.first_val(contexts.AS.mediaType), + "content": jsonld.first_val(contexts.AS.content), } @@ -805,6 +807,28 @@ def repr_tag(tag_name): return {"type": "Hashtag", "name": "#{}".format(tag_name)} +def include_content(repr, content_obj): + if not content_obj: + return + + repr["content"] = common_utils.render_html( + content_obj.text, content_obj.content_type + ) + repr["mediaType"] = "text/html" + + +class TruncatedCharField(serializers.CharField): + def __init__(self, *args, **kwargs): + self.truncate_length = kwargs.pop("truncate_length") + super().__init__(*args, **kwargs) + + def to_internal_value(self, v): + v = super().to_internal_value(v) + if v: + v = v[: self.truncate_length] + return v + + class MusicEntitySerializer(jsonld.JsonLdSerializer): id = serializers.URLField(max_length=500) published = serializers.DateTimeField() @@ -815,13 +839,23 @@ class MusicEntitySerializer(jsonld.JsonLdSerializer): tags = serializers.ListField( child=TagSerializer(), min_length=0, required=False, allow_null=True ) + mediaType = serializers.ChoiceField( + choices=common_models.CONTENT_TEXT_SUPPORTED_TYPES, + default="text/html", + required=False, + ) + content = TruncatedCharField( + truncate_length=common_models.CONTENT_TEXT_MAX_LENGTH, + required=False, + allow_null=True, + ) @transaction.atomic def update(self, instance, validated_data): attributed_to_fid = validated_data.get("attributedTo") if attributed_to_fid: validated_data["attributedTo"] = actors.get_actor(attributed_to_fid) - updated_fields = funkwhale_utils.get_updated_fields( + updated_fields = common_utils.get_updated_fields( self.updateable_fields, validated_data, instance ) updated_fields = self.validate_updated_data(instance, updated_fields) @@ -831,6 +865,9 @@ class MusicEntitySerializer(jsonld.JsonLdSerializer): tags = [t["name"] for t in validated_data.get("tags", []) or []] tags_models.set_tags(instance, *tags) + common_utils.attach_content( + instance, "description", validated_data.get("description") + ) return instance def get_tags_repr(self, instance): @@ -842,6 +879,15 @@ class MusicEntitySerializer(jsonld.JsonLdSerializer): def validate_updated_data(self, instance, validated_data): return validated_data + def validate(self, data): + validated_data = super().validate(data) + if data.get("content"): + validated_data["description"] = { + "content_type": data["mediaType"], + "text": data["content"], + } + return validated_data + class ArtistSerializer(MusicEntitySerializer): updateable_fields = [ @@ -866,7 +912,7 @@ class ArtistSerializer(MusicEntitySerializer): else None, "tag": self.get_tags_repr(instance), } - + include_content(d, instance.description) if self.context.get("include_ap_context", self.parent is None): d["@context"] = jsonld.get_default_context() return d @@ -888,7 +934,7 @@ class AlbumSerializer(MusicEntitySerializer): class Meta: model = music_models.Album - jsonld_mapping = funkwhale_utils.concat_dicts( + jsonld_mapping = common_utils.concat_dicts( MUSIC_ENTITY_JSONLD_MAPPING, { "released": jsonld.first_val(contexts.FW.released), @@ -917,6 +963,7 @@ class AlbumSerializer(MusicEntitySerializer): else None, "tag": self.get_tags_repr(instance), } + include_content(d, instance.description) if instance.attachment_cover: d["cover"] = { "type": "Link", @@ -968,7 +1015,7 @@ class TrackSerializer(MusicEntitySerializer): class Meta: model = music_models.Track - jsonld_mapping = funkwhale_utils.concat_dicts( + jsonld_mapping = common_utils.concat_dicts( MUSIC_ENTITY_JSONLD_MAPPING, { "album": jsonld.first_obj(contexts.FW.album), @@ -1006,7 +1053,7 @@ class TrackSerializer(MusicEntitySerializer): else None, "tag": self.get_tags_repr(instance), } - + include_content(d, instance.description) if self.context.get("include_ap_context", self.parent is None): d["@context"] = jsonld.get_default_context() return d @@ -1017,23 +1064,21 @@ class TrackSerializer(MusicEntitySerializer): references = {} actors_to_fetch = set() actors_to_fetch.add( - funkwhale_utils.recursive_getattr( + common_utils.recursive_getattr( validated_data, "attributedTo", permissive=True ) ) actors_to_fetch.add( - funkwhale_utils.recursive_getattr( + common_utils.recursive_getattr( validated_data, "album.attributedTo", permissive=True ) ) artists = ( - funkwhale_utils.recursive_getattr( - validated_data, "artists", permissive=True - ) + common_utils.recursive_getattr(validated_data, "artists", permissive=True) or [] ) album_artists = ( - funkwhale_utils.recursive_getattr( + common_utils.recursive_getattr( validated_data, "album.artists", permissive=True ) or [] @@ -1244,6 +1289,7 @@ class ChannelUploadSerializer(serializers.Serializer): }, ], } + include_content(data, upload.track.description) tags = [item.tag.name for item in upload.get_all_tagged_items()] if tags: data["tag"] = [repr_tag(name) for name in tags] diff --git a/api/funkwhale_api/federation/views.py b/api/funkwhale_api/federation/views.py index f0ac6687..b732712d 100644 --- a/api/funkwhale_api/federation/views.py +++ b/api/funkwhale_api/federation/views.py @@ -225,11 +225,14 @@ class MusicLibraryViewSet( "album__attributed_to", "attributed_to", "album__attachment_cover", + "description", ).prefetch_related( "tagged_items__tag", "album__tagged_items__tag", "album__artist__tagged_items__tag", "artist__tagged_items__tag", + "artist__description", + "album__description", ), ) ), @@ -278,6 +281,7 @@ class MusicUploadViewSet( "library__actor", "track__artist", "track__album__artist", + "track__description", "track__album__attachment_cover", ) serializer_class = serializers.UploadSerializer @@ -299,7 +303,7 @@ class MusicArtistViewSet( ): authentication_classes = [authentication.SignatureAuthentication] renderer_classes = renderers.get_ap_renderers() - queryset = music_models.Artist.objects.local() + queryset = music_models.Artist.objects.local().select_related("description") serializer_class = serializers.ArtistSerializer lookup_field = "uuid" @@ -309,7 +313,9 @@ class MusicAlbumViewSet( ): authentication_classes = [authentication.SignatureAuthentication] renderer_classes = renderers.get_ap_renderers() - queryset = music_models.Album.objects.local().select_related("artist") + queryset = music_models.Album.objects.local().select_related( + "artist__description", "description" + ) serializer_class = serializers.AlbumSerializer lookup_field = "uuid" @@ -320,7 +326,7 @@ class MusicTrackViewSet( authentication_classes = [authentication.SignatureAuthentication] renderer_classes = renderers.get_ap_renderers() queryset = music_models.Track.objects.local().select_related( - "album__artist", "artist" + "album__artist", "album__description", "artist__description", "description" ) serializer_class = serializers.TrackSerializer lookup_field = "uuid" diff --git a/api/funkwhale_api/manage/serializers.py b/api/funkwhale_api/manage/serializers.py index dfa04bbe..20c1d023 100644 --- a/api/funkwhale_api/manage/serializers.py +++ b/api/funkwhale_api/manage/serializers.py @@ -383,7 +383,9 @@ class ManageNestedAlbumSerializer(ManageBaseAlbumSerializer): return getattr(obj, "tracks_count", None) -class ManageArtistSerializer(ManageBaseArtistSerializer): +class ManageArtistSerializer( + music_serializers.OptionalDescriptionMixin, ManageBaseArtistSerializer +): albums = ManageNestedAlbumSerializer(many=True) tracks = ManageNestedTrackSerializer(many=True) attributed_to = ManageBaseActorSerializer() @@ -407,7 +409,9 @@ class ManageNestedArtistSerializer(ManageBaseArtistSerializer): pass -class ManageAlbumSerializer(ManageBaseAlbumSerializer): +class ManageAlbumSerializer( + music_serializers.OptionalDescriptionMixin, ManageBaseAlbumSerializer +): tracks = ManageNestedTrackSerializer(many=True) attributed_to = ManageBaseActorSerializer() artist = ManageNestedArtistSerializer() @@ -435,7 +439,9 @@ class ManageTrackAlbumSerializer(ManageBaseAlbumSerializer): fields = ManageBaseAlbumSerializer.Meta.fields + ["artist"] -class ManageTrackSerializer(ManageNestedTrackSerializer): +class ManageTrackSerializer( + music_serializers.OptionalDescriptionMixin, ManageNestedTrackSerializer +): artist = ManageNestedArtistSerializer() album = ManageTrackAlbumSerializer() attributed_to = ManageBaseActorSerializer() diff --git a/api/funkwhale_api/manage/views.py b/api/funkwhale_api/manage/views.py index c946c37e..1754a897 100644 --- a/api/funkwhale_api/manage/views.py +++ b/api/funkwhale_api/manage/views.py @@ -100,6 +100,11 @@ class ManageArtistViewSet( result = serializer.save() return response.Response(result, status=200) + def get_serializer_context(self): + context = super().get_serializer_context() + context["description"] = self.action in ["retrieve", "create", "update"] + return context + class ManageAlbumViewSet( mixins.ListModelMixin, @@ -134,6 +139,11 @@ class ManageAlbumViewSet( result = serializer.save() return response.Response(result, status=200) + def get_serializer_context(self): + context = super().get_serializer_context() + context["description"] = self.action in ["retrieve", "create", "update"] + return context + uploads_subquery = ( music_models.Upload.objects.filter(track_id=OuterRef("pk")) @@ -186,6 +196,11 @@ class ManageTrackViewSet( result = serializer.save() return response.Response(result, status=200) + def get_serializer_context(self): + context = super().get_serializer_context() + context["description"] = self.action in ["retrieve", "create", "update"] + return context + uploads_subquery = ( music_models.Upload.objects.filter(library_id=OuterRef("pk")) diff --git a/api/funkwhale_api/music/metadata.py b/api/funkwhale_api/music/metadata.py index 33cf2667..78ca7916 100644 --- a/api/funkwhale_api/music/metadata.py +++ b/api/funkwhale_api/music/metadata.py @@ -168,6 +168,17 @@ def get_mp3_recording_id(f, k): raise TagNotFound(k) +def get_mp3_comment(f, k): + keys_to_try = ["COMM", "COMM::eng"] + for key in keys_to_try: + try: + return get_id3_tag(f, key) + except TagNotFound: + pass + + raise TagNotFound("COMM") + + VALIDATION = {} CONF = { @@ -192,6 +203,7 @@ CONF = { "field": "metadata_block_picture", "to_application": clean_ogg_pictures, }, + "comment": {"field": "comment"}, }, }, "OggVorbis": { @@ -215,6 +227,7 @@ CONF = { "field": "metadata_block_picture", "to_application": clean_ogg_pictures, }, + "comment": {"field": "comment"}, }, }, "OggTheora": { @@ -234,6 +247,7 @@ CONF = { "license": {}, "copyright": {}, "genre": {}, + "comment": {"field": "comment"}, }, }, "MP3": { @@ -255,6 +269,7 @@ CONF = { "pictures": {}, "license": {"field": "WCOP"}, "copyright": {"field": "TCOP"}, + "comment": {"field": "COMM", "getter": get_mp3_comment}, }, }, "MP4": { @@ -282,6 +297,7 @@ CONF = { "pictures": {}, "license": {"field": "----:com.apple.iTunes:LICENSE"}, "copyright": {"field": "cprt"}, + "comment": {"field": "©cmt"}, }, }, "FLAC": { @@ -304,6 +320,7 @@ CONF = { "pictures": {}, "license": {}, "copyright": {}, + "comment": {}, }, }, } @@ -322,6 +339,7 @@ ALL_FIELDS = [ "mbid", "license", "copyright", + "comment", ] @@ -657,6 +675,21 @@ class PositionField(serializers.CharField): pass +class DescriptionField(serializers.CharField): + def get_value(self, data): + return data + + def to_internal_value(self, data): + try: + value = data.get("comment") or None + except TagNotFound: + return None + if not value: + return None + value = super().to_internal_value(value) + return {"text": value, "content_type": "text/plain"} + + class TrackMetadataSerializer(serializers.Serializer): title = serializers.CharField() position = PositionField(allow_blank=True, allow_null=True, required=False) @@ -665,6 +698,7 @@ class TrackMetadataSerializer(serializers.Serializer): license = serializers.CharField(allow_blank=True, allow_null=True, required=False) mbid = MBIDField() tags = TagsField(allow_blank=True, allow_null=True, required=False) + description = DescriptionField(allow_null=True, allow_blank=True, required=False) album = AlbumField() artists = ArtistField() @@ -672,6 +706,7 @@ class TrackMetadataSerializer(serializers.Serializer): remove_blank_null_fields = [ "copyright", + "description", "license", "position", "disc_number", diff --git a/api/funkwhale_api/music/migrations/0046_auto_20200113_1018.py b/api/funkwhale_api/music/migrations/0046_auto_20200113_1018.py new file mode 100644 index 00000000..1e818331 --- /dev/null +++ b/api/funkwhale_api/music/migrations/0046_auto_20200113_1018.py @@ -0,0 +1,30 @@ +# Generated by Django 2.2.7 on 2020-01-13 10:18 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('common', '0006_content'), + ('music', '0045_full_text_search_stop_words'), + ] + + operations = [ + migrations.AddField( + model_name='album', + name='description', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='common.Content'), + ), + migrations.AddField( + model_name='artist', + name='description', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='common.Content'), + ), + migrations.AddField( + model_name='track', + name='description', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='common.Content'), + ), + ] diff --git a/api/funkwhale_api/music/models.py b/api/funkwhale_api/music/models.py index 424a307e..9165e465 100644 --- a/api/funkwhale_api/music/models.py +++ b/api/funkwhale_api/music/models.py @@ -227,6 +227,9 @@ class Artist(APIModelMixin): content_type_field="object_content_type", object_id_field="object_id", ) + description = models.ForeignKey( + "common.Content", null=True, blank=True, on_delete=models.SET_NULL + ) api = musicbrainz.api.artists objects = ArtistQuerySet.as_manager() @@ -327,6 +330,10 @@ class Album(APIModelMixin): object_id_field="object_id", ) + description = models.ForeignKey( + "common.Content", null=True, blank=True, on_delete=models.SET_NULL + ) + api_includes = ["artist-credits", "recordings", "media", "release-groups"] api = musicbrainz.api.releases federation_namespace = "albums" @@ -508,6 +515,10 @@ class Track(APIModelMixin): copyright = models.CharField( max_length=MAX_LENGTHS["COPYRIGHT"], null=True, blank=True ) + description = models.ForeignKey( + "common.Content", null=True, blank=True, on_delete=models.SET_NULL + ) + federation_namespace = "tracks" musicbrainz_model = "recording" api = musicbrainz.api.recordings diff --git a/api/funkwhale_api/music/mutations.py b/api/funkwhale_api/music/mutations.py index aad3b0e9..d158857f 100644 --- a/api/funkwhale_api/music/mutations.py +++ b/api/funkwhale_api/music/mutations.py @@ -1,6 +1,8 @@ from funkwhale_api.common import models as common_models from funkwhale_api.common import mutations from funkwhale_api.common import serializers as common_serializers +from funkwhale_api.common import utils as common_utils + from funkwhale_api.federation import routes from funkwhale_api.tags import models as tags_models from funkwhale_api.tags import serializers as tags_serializers @@ -23,11 +25,13 @@ def can_approve(obj, actor): class TagMutation(mutations.UpdateMutationSerializer): tags = tags_serializers.TagsListField() - previous_state_handlers = { - "tags": lambda obj: list( + + def get_previous_state_handlers(self): + handlers = super().get_previous_state_handlers() + handlers["tags"] = lambda obj: list( sorted(obj.tagged_items.values_list("tag__name", flat=True)) ) - } + return handlers def update(self, instance, validated_data): tags = validated_data.pop("tags", []) @@ -36,17 +40,36 @@ class TagMutation(mutations.UpdateMutationSerializer): return r +class DescriptionMutation(mutations.UpdateMutationSerializer): + description = common_serializers.ContentSerializer() + + def get_previous_state_handlers(self): + handlers = super().get_previous_state_handlers() + handlers["description"] = ( + lambda obj: common_serializers.ContentSerializer(obj.description).data + if obj.description_id + else None + ) + return handlers + + def update(self, instance, validated_data): + description = validated_data.pop("description", None) + r = super().update(instance, validated_data) + common_utils.attach_content(instance, "description", description) + return r + + @mutations.registry.connect( "update", models.Track, perm_checkers={"suggest": can_suggest, "approve": can_approve}, ) -class TrackMutationSerializer(TagMutation): +class TrackMutationSerializer(TagMutation, DescriptionMutation): serialized_relations = {"license": "code"} class Meta: model = models.Track - fields = ["license", "title", "position", "copyright", "tags"] + fields = ["license", "title", "position", "copyright", "tags", "description"] def post_apply(self, obj, validated_data): routes.outbox.dispatch( @@ -59,10 +82,10 @@ class TrackMutationSerializer(TagMutation): models.Artist, perm_checkers={"suggest": can_suggest, "approve": can_approve}, ) -class ArtistMutationSerializer(TagMutation): +class ArtistMutationSerializer(TagMutation, DescriptionMutation): class Meta: model = models.Artist - fields = ["name", "tags"] + fields = ["name", "tags", "description"] def post_apply(self, obj, validated_data): routes.outbox.dispatch( @@ -75,27 +98,23 @@ class ArtistMutationSerializer(TagMutation): models.Album, perm_checkers={"suggest": can_suggest, "approve": can_approve}, ) -class AlbumMutationSerializer(TagMutation): +class AlbumMutationSerializer(TagMutation, DescriptionMutation): cover = common_serializers.RelatedField( "uuid", queryset=common_models.Attachment.objects.all().local(), serializer=None ) serialized_relations = {"cover": "uuid"} - previous_state_handlers = dict( - list(TagMutation.previous_state_handlers.items()) - + [ - ( - "cover", - lambda obj: str(obj.attachment_cover.uuid) - if obj.attachment_cover - else None, - ), - ] - ) class Meta: model = models.Album - fields = ["title", "release_date", "tags", "cover"] + fields = ["title", "release_date", "tags", "cover", "description"] + + def get_previous_state_handlers(self): + handlers = super().get_previous_state_handlers() + handlers["cover"] = ( + lambda obj: str(obj.attachment_cover.uuid) if obj.attachment_cover else None + ) + return handlers def post_apply(self, obj, validated_data): routes.outbox.dispatch( diff --git a/api/funkwhale_api/music/serializers.py b/api/funkwhale_api/music/serializers.py index 4e45190e..1049b3d9 100644 --- a/api/funkwhale_api/music/serializers.py +++ b/api/funkwhale_api/music/serializers.py @@ -49,6 +49,20 @@ def serialize_attributed_to(self, obj): return federation_serializers.APIActorSerializer(obj.attributed_to).data +class OptionalDescriptionMixin(object): + def to_representation(self, obj): + repr = super().to_representation(obj) + if self.context.get("description", False): + description = obj.description + repr["description"] = ( + common_serializers.ContentSerializer(description).data + if description + else None + ) + + return repr + + class LicenseSerializer(serializers.Serializer): id = serializers.SerializerMethodField() url = serializers.URLField() @@ -96,7 +110,7 @@ class ArtistAlbumSerializer(serializers.Serializer): DATETIME_FIELD = serializers.DateTimeField() -class ArtistWithAlbumsSerializer(serializers.Serializer): +class ArtistWithAlbumsSerializer(OptionalDescriptionMixin, serializers.Serializer): albums = ArtistAlbumSerializer(many=True) tags = serializers.SerializerMethodField() attributed_to = serializers.SerializerMethodField() @@ -152,7 +166,7 @@ def serialize_album_track(track): } -class AlbumSerializer(serializers.Serializer): +class AlbumSerializer(OptionalDescriptionMixin, serializers.Serializer): tracks = serializers.SerializerMethodField() artist = serializers.SerializerMethodField() cover = cover_field @@ -225,7 +239,7 @@ def serialize_upload(upload): } -class TrackSerializer(serializers.Serializer): +class TrackSerializer(OptionalDescriptionMixin, serializers.Serializer): artist = serializers.SerializerMethodField() album = TrackAlbumSerializer(read_only=True) uploads = serializers.SerializerMethodField() diff --git a/api/funkwhale_api/music/tasks.py b/api/funkwhale_api/music/tasks.py index 71f71068..e6b63207 100644 --- a/api/funkwhale_api/music/tasks.py +++ b/api/funkwhale_api/music/tasks.py @@ -12,6 +12,7 @@ from musicbrainzngs import ResponseError from requests.exceptions import RequestException from funkwhale_api.common import channels, preferences +from funkwhale_api.common import utils as common_utils from funkwhale_api.federation import routes from funkwhale_api.federation import library as lb from funkwhale_api.federation import utils as federation_utils @@ -309,6 +310,7 @@ def federation_audio_track_to_metadata(payload, references): "disc_number": payload.get("disc"), "license": payload.get("license"), "copyright": payload.get("copyright"), + "description": payload.get("description"), "attributed_to": references.get(payload.get("attributedTo")), "mbid": str(payload.get("musicbrainzId")) if payload.get("musicbrainzId") @@ -317,6 +319,7 @@ def federation_audio_track_to_metadata(payload, references): "title": payload["album"]["name"], "fdate": payload["album"]["published"], "fid": payload["album"]["id"], + "description": payload["album"].get("description"), "attributed_to": references.get(payload["album"].get("attributedTo")), "mbid": str(payload["album"]["musicbrainzId"]) if payload["album"].get("musicbrainzId") @@ -328,6 +331,7 @@ def federation_audio_track_to_metadata(payload, references): "fid": a["id"], "name": a["name"], "fdate": a["published"], + "description": a.get("description"), "attributed_to": references.get(a.get("attributedTo")), "mbid": str(a["musicbrainzId"]) if a.get("musicbrainzId") else None, "tags": [t["name"] for t in a.get("tags", []) or []], @@ -340,6 +344,7 @@ def federation_audio_track_to_metadata(payload, references): "fid": a["id"], "name": a["name"], "fdate": a["published"], + "description": a.get("description"), "attributed_to": references.get(a.get("attributedTo")), "mbid": str(a["musicbrainzId"]) if a.get("musicbrainzId") else None, "tags": [t["name"] for t in a.get("tags", []) or []], @@ -505,6 +510,9 @@ def _get_track(data, attributed_to=None, **forced_values): ) if created: tags_models.add_tags(artist, *artist_data.get("tags", [])) + common_utils.attach_content( + artist, "description", artist_data.get("description") + ) if "album" in forced_values: album = forced_values["album"] @@ -539,6 +547,9 @@ def _get_track(data, attributed_to=None, **forced_values): ) if created: tags_models.add_tags(album_artist, *album_artist_data.get("tags", [])) + common_utils.attach_content( + album_artist, "description", album_artist_data.get("description") + ) # get / create album album_data = data["album"] @@ -569,6 +580,9 @@ def _get_track(data, attributed_to=None, **forced_values): ) if created: tags_models.add_tags(album, *album_data.get("tags", [])) + common_utils.attach_content( + album, "description", album_data.get("description") + ) # get / create track track_title = ( @@ -602,6 +616,7 @@ def _get_track(data, attributed_to=None, **forced_values): query |= Q(mbid=track_mbid) if track_fid: query |= Q(fid=track_fid) + defaults = { "title": track_title, "album": album, @@ -627,6 +642,8 @@ def _get_track(data, attributed_to=None, **forced_values): forced_values["tags"] if "tags" in forced_values else data.get("tags", []) ) tags_models.add_tags(track, *tags) + common_utils.attach_content(track, "description", data.get("description")) + return track diff --git a/api/funkwhale_api/music/views.py b/api/funkwhale_api/music/views.py index 39c327e3..f7fb6e65 100644 --- a/api/funkwhale_api/music/views.py +++ b/api/funkwhale_api/music/views.py @@ -143,6 +143,11 @@ class ArtistViewSet( obj = refetch_obj(obj, self.get_queryset()) return obj + def get_serializer_context(self): + context = super().get_serializer_context() + context["description"] = self.action in ["retrieve", "create", "update"] + return context + def get_queryset(self): queryset = super().get_queryset() albums = models.Album.objects.with_tracks_count().select_related( @@ -194,6 +199,11 @@ class AlbumViewSet( obj = refetch_obj(obj, self.get_queryset()) return obj + def get_serializer_context(self): + context = super().get_serializer_context() + context["description"] = self.action in ["retrieve", "create", "update"] + return context + def get_queryset(self): queryset = super().get_queryset() tracks = ( @@ -332,6 +342,11 @@ class TrackViewSet( get_libraries(filter_uploads=lambda o, uploads: uploads.filter(track=o)) ) + def get_serializer_context(self): + context = super().get_serializer_context() + context["description"] = self.action in ["retrieve", "create", "update"] + return context + def strip_absolute_media_url(path): if ( diff --git a/api/requirements/base.txt b/api/requirements/base.txt index 599f7b9f..9cdbb477 100644 --- a/api/requirements/base.txt +++ b/api/requirements/base.txt @@ -76,3 +76,5 @@ django-cacheops==4.2 click>=7,<8 service_identity==18.1.0 +markdown>=3,<4 +bleach>=3,<4 diff --git a/api/tests/common/test_models.py b/api/tests/common/test_models.py index b5a56614..9fdde037 100644 --- a/api/tests/common/test_models.py +++ b/api/tests/common/test_models.py @@ -71,3 +71,17 @@ def test_attachment_queryset_attached(args, expected, factories, queryset_equal_ queryset = attachments[0].__class__.objects.attached(*args).order_by("id") expected_objs = [attachments[i] for i in expected] assert queryset == expected_objs + + +def test_removing_obj_removes_content(factories): + kept_content = factories["common.Content"]() + removed_content = factories["common.Content"]() + track1 = factories["music.Track"](description=removed_content) + factories["music.Track"](description=kept_content) + + track1.delete() + + with pytest.raises(removed_content.DoesNotExist): + removed_content.refresh_from_db() + + kept_content.refresh_from_db() diff --git a/api/tests/common/test_serializers.py b/api/tests/common/test_serializers.py index 067a9e4a..8fdb21ed 100644 --- a/api/tests/common/test_serializers.py +++ b/api/tests/common/test_serializers.py @@ -7,6 +7,7 @@ from django.urls import reverse import django_filters from funkwhale_api.common import serializers +from funkwhale_api.common import utils from funkwhale_api.users import models from funkwhale_api.federation import utils as federation_utils @@ -252,3 +253,17 @@ def test_attachment_serializer_remote_file(factories, to_api_date): serializer = serializers.AttachmentSerializer(attachment) assert serializer.data == expected + + +def test_content_serializer(factories): + content = factories["common.Content"]() + + expected = { + "text": content.text, + "content_type": content.content_type, + "html": utils.render_html(content.text, content.content_type), + } + + serializer = serializers.ContentSerializer(content) + + assert serializer.data == expected diff --git a/api/tests/common/test_utils.py b/api/tests/common/test_utils.py index 74a3d0bc..def5434a 100644 --- a/api/tests/common/test_utils.py +++ b/api/tests/common/test_utils.py @@ -99,3 +99,28 @@ def test_get_updated_fields(conf, mock_args, data, expected, mocker): ) def test_join_url(start, end, expected): assert utils.join_url(start, end) == expected + + +@pytest.mark.parametrize( + "text, content_type, expected", + [ + ("hello world", "text/markdown", "<p>hello world</p>"), + ("hello world", "text/plain", "<p>hello world</p>"), + ("<strong>hello world</strong>", "text/html", "<strong>hello world</strong>"), + # images and other non whitelisted html should be removed + ("hello world\n", "text/markdown", "<p>hello world</p>"), + ( + "hello world\n\n<script></script>\n\n<style></style>", + "text/markdown", + "<p>hello world</p>", + ), + ( + "<p>hello world</p><script></script>\n\n<style></style>", + "text/html", + "<p>hello world</p>", + ), + ], +) +def test_render_html(text, content_type, expected): + result = utils.render_html(text, content_type) + assert result == expected diff --git a/api/tests/federation/test_serializers.py b/api/tests/federation/test_serializers.py index 4076fdd5..e158b604 100644 --- a/api/tests/federation/test_serializers.py +++ b/api/tests/federation/test_serializers.py @@ -5,6 +5,7 @@ import uuid from django.core.paginator import Paginator from django.utils import timezone +from funkwhale_api.common import utils as common_utils from funkwhale_api.federation import contexts from funkwhale_api.federation import keys from funkwhale_api.federation import jsonld @@ -560,7 +561,10 @@ def test_music_library_serializer_from_private(factories, mocker): def test_activity_pub_artist_serializer_to_ap(factories): - artist = factories["music.Artist"](attributed=True, set_tags=["Punk", "Rock"]) + content = factories["common.Content"]() + artist = factories["music.Artist"]( + description=content, attributed=True, set_tags=["Punk", "Rock"] + ) expected = { "@context": jsonld.get_default_context(), "type": "Artist", @@ -569,6 +573,8 @@ def test_activity_pub_artist_serializer_to_ap(factories): "musicbrainzId": artist.mbid, "published": artist.creation_date.isoformat(), "attributedTo": artist.attributed_to.fid, + "mediaType": "text/html", + "content": common_utils.render_html(content.text, content.content_type), "tag": [ {"type": "Hashtag", "name": "#Punk"}, {"type": "Hashtag", "name": "#Rock"}, @@ -580,7 +586,10 @@ def test_activity_pub_artist_serializer_to_ap(factories): def test_activity_pub_album_serializer_to_ap(factories): - album = factories["music.Album"](attributed=True, set_tags=["Punk", "Rock"]) + content = factories["common.Content"]() + album = factories["music.Album"]( + description=content, attributed=True, set_tags=["Punk", "Rock"] + ) expected = { "@context": jsonld.get_default_context(), @@ -601,6 +610,8 @@ def test_activity_pub_album_serializer_to_ap(factories): ).data ], "attributedTo": album.attributed_to.fid, + "mediaType": "text/html", + "content": common_utils.render_html(content.text, content.content_type), "tag": [ {"type": "Hashtag", "name": "#Punk"}, {"type": "Hashtag", "name": "#Rock"}, @@ -653,7 +664,9 @@ def test_activity_pub_album_serializer_from_ap_update(factories, faker): def test_activity_pub_track_serializer_to_ap(factories): + content = factories["common.Content"]() track = factories["music.Track"]( + description=content, license="cc-by-4.0", copyright="test", disc_number=3, @@ -680,6 +693,8 @@ def test_activity_pub_track_serializer_to_ap(factories): track.album, context={"include_ap_context": False} ).data, "attributedTo": track.attributed_to.fid, + "mediaType": "text/html", + "content": common_utils.render_html(content.text, content.content_type), "tag": [ {"type": "Hashtag", "name": "#Punk"}, {"type": "Hashtag", "name": "#Rock"}, @@ -709,6 +724,7 @@ def test_activity_pub_track_serializer_from_ap(factories, r_mock, mocker): "name": "Black in back", "position": 5, "disc": 1, + "content": "Hello there", "attributedTo": track_attributed_to.fid, "album": { "type": "Album", @@ -717,6 +733,8 @@ def test_activity_pub_track_serializer_from_ap(factories, r_mock, mocker): "musicbrainzId": str(uuid.uuid4()), "published": published.isoformat(), "released": released.isoformat(), + "content": "Album summary", + "mediaType": "text/markdown", "attributedTo": album_attributed_to.fid, "cover": { "type": "Link", @@ -727,6 +745,8 @@ def test_activity_pub_track_serializer_from_ap(factories, r_mock, mocker): "artists": [ { "type": "Artist", + "mediaType": "text/plain", + "content": "Artist summary", "id": "http://hello.artist", "name": "John Smith", "musicbrainzId": str(uuid.uuid4()), @@ -741,6 +761,8 @@ def test_activity_pub_track_serializer_from_ap(factories, r_mock, mocker): "type": "Artist", "id": "http://hello.trackartist", "name": "Bob Smith", + "mediaType": "text/plain", + "content": "Other artist summary", "musicbrainzId": str(uuid.uuid4()), "attributedTo": artist_attributed_to.fid, "published": published.isoformat(), @@ -769,6 +791,8 @@ def test_activity_pub_track_serializer_from_ap(factories, r_mock, mocker): assert track.creation_date == published assert track.attributed_to == track_attributed_to assert str(track.mbid) == data["musicbrainzId"] + assert track.description.text == data["content"] + assert track.description.content_type == "text/html" assert album.from_activity == activity assert album.attachment_cover.file.read() == b"coucou" @@ -779,6 +803,8 @@ def test_activity_pub_track_serializer_from_ap(factories, r_mock, mocker): assert album.creation_date == published assert album.release_date == released assert album.attributed_to == album_attributed_to + assert album.description.text == data["album"]["content"] + assert album.description.content_type == data["album"]["mediaType"] assert artist.from_activity == activity assert artist.name == data["artists"][0]["name"] @@ -786,6 +812,8 @@ def test_activity_pub_track_serializer_from_ap(factories, r_mock, mocker): assert str(artist.mbid) == data["artists"][0]["musicbrainzId"] assert artist.creation_date == published assert artist.attributed_to == artist_attributed_to + assert artist.description.text == data["artists"][0]["content"] + assert artist.description.content_type == data["artists"][0]["mediaType"] assert album_artist.from_activity == activity assert album_artist.name == data["album"]["artists"][0]["name"] @@ -793,6 +821,11 @@ def test_activity_pub_track_serializer_from_ap(factories, r_mock, mocker): assert str(album_artist.mbid) == data["album"]["artists"][0]["musicbrainzId"] assert album_artist.creation_date == published assert album_artist.attributed_to == album_artist_attributed_to + assert album_artist.description.text == data["album"]["artists"][0]["content"] + assert ( + album_artist.description.content_type + == data["album"]["artists"][0]["mediaType"] + ) add_tags.assert_any_call(track, *["Hello", "World"]) add_tags.assert_any_call(album, *["AlbumTag"]) @@ -802,8 +835,9 @@ def test_activity_pub_track_serializer_from_ap(factories, r_mock, mocker): def test_activity_pub_track_serializer_from_ap_update(factories, r_mock, mocker): set_tags = mocker.patch("funkwhale_api.tags.models.set_tags") + content = factories["common.Content"]() track_attributed_to = factories["federation.Actor"]() - track = factories["music.Track"]() + track = factories["music.Track"](description=content) published = timezone.now() data = { @@ -815,6 +849,7 @@ def test_activity_pub_track_serializer_from_ap_update(factories, r_mock, mocker) "name": "Black in back", "position": 5, "disc": 2, + "content": "hello there", "attributedTo": track_attributed_to.fid, "album": serializers.AlbumSerializer(track.album).data, "artists": [serializers.ArtistSerializer(track.artist).data], @@ -835,10 +870,15 @@ def test_activity_pub_track_serializer_from_ap_update(factories, r_mock, mocker) assert track.position == data["position"] assert track.disc_number == data["disc"] assert track.attributed_to == track_attributed_to + assert track.description.content_type == "text/html" + assert track.description.text == "hello there" assert str(track.mbid) == data["musicbrainzId"] set_tags.assert_called_once_with(track, *["Hello", "World"]) + with pytest.raises(content.DoesNotExist): + content.refresh_from_db() + def test_activity_pub_upload_serializer_from_ap(factories, mocker, r_mock): activity = factories["federation.Activity"]() @@ -1083,11 +1123,13 @@ def test_channel_actor_outbox_serializer(factories): def test_channel_upload_serializer(factories): channel = factories["audio.Channel"]() + content = factories["common.Content"]() upload = factories["music.Upload"]( playable=True, library=channel.library, import_status="finished", track__set_tags=["Punk"], + track__description=content, track__album__set_tags=["Rock"], track__artist__set_tags=["Indie"], ) @@ -1100,6 +1142,8 @@ def test_channel_upload_serializer(factories): "summary": "#Indie #Punk #Rock", "attributedTo": channel.actor.fid, "published": upload.creation_date.isoformat(), + "mediaType": "text/html", + "content": common_utils.render_html(content.text, content.content_type), "to": "https://www.w3.org/ns/activitystreams#Public", "url": [ { diff --git a/api/tests/music/sample.flac b/api/tests/music/sample.flac index a8aafa39239a199663c6673c678064826ecf965b..b89db5b8c580dacd2f954b4238d266348c96cee0 100644 GIT binary patch delta 283 zcmZoV&DwODb%L(&30?*U2A{;TG*fduQ!_n714EOE4#^?{Kv8#BzaUpz&%Bh<;*z4w z#GHwXkBABa#e-aZTpfd5o&7`oLV_Y~Bf=+FG5StsXL=^g50rHb_VlxLGB7Z7cJmML z4V-+O(P8o*CMmF-i(`nZt&xF&g|2}q5KY!*KI_O0)D!F+<QWiR>yucL#{=Ys_=h<9 zxOfIT2iqF*!T2FTj?Ugd0RxZ<kfdLzuaj$#t>I)_mf*>TtfGP-pM-dZ__*3yT3YG= z@#G0C6DGT{riu##Wt{zeeO>)RY&}wQa`F{QGE$3DoA<MB-_Od(8_jri`^5yttIX4P IrZAoa0D=!pasU7T delta 301 zcmZoV&DwODb%L(&MqUO62A{;TG*fduQ!_n714HA94#^X@9}(sUN;n34`q?@e7#KRc z`3Lw0PM*N%JNX)u!{ob+&+NE?^1;qQo&h1YK8YoHVnA+?tB<Q=uxoILV@PPQZGKu> zW^!g?jvzwD*+0}TBq-80B7Cwl^I2Dr6)uh;uC_)71{S&ora;646bkVVarANV40aB- zH3acNOutZHC)XfbLq3>%NRXqmH&B7W<Up3-$){K*sDXSE;u+%OYHMj}sRP6yi#>yb zoNYscL!3<wEX*v-%?u|;v8IX$0A<`={eoO=J@ZmZi%W`t&TPKMy8Rj}BX2b0o9!PH R7*8-yOJr1;zB7gKBmmw7QZoPm diff --git a/api/tests/music/test.m4a b/api/tests/music/test.m4a index 57b65b7b53489c85cb7a9e5ca5fa92fa976c35ea..24c49c2db1b09724aff7608663d6abd8f7b0748f 100644 GIT binary patch delta 65 zcmdlniFwB)<_(taOm#Awt=)Ij$}6u-&MjeJV31BpEJ*~?j6lrbk(!f}uTYYaS~U6n T5ob2$r)fp0shb^--em>=yC@bf delta 37 vcmV+=0NVe!k^{Js1F$(q0)6?jJ4d*ElNQB41_TIZa%E++Va3-2lW@f;DXtH) diff --git a/api/tests/music/test.mp3 b/api/tests/music/test.mp3 index 5f8dc2c727d63873ed7cada78379030b9cadb0d7..5545c42f55e71637250379bb397a050de3e337f1 100644 GIT binary patch delta 77 zcmbO@O=#jYp$(!;n$G^dz6=ZuN(>B)sd?%D|1mK9|L4Jw%8&zu`3wpSB@7urUJ*m; bW+A3Ch0R<g?OY{{K+FWh%-gw2SlGn@X3iCZ delta 39 scmbO@O=#jYp$(!;n;n@>7ETT*)M@4_Y3C|o1Y#y2X5P+K!on^N02kj3R{#J2 diff --git a/api/tests/music/test.ogg b/api/tests/music/test.ogg index 9975cd9fe447824358da6dc9a89780c61ade8aee..7d1f523dc4e4c44c011c2aa8d8ee2794f6d51f5f 100644 GIT binary patch delta 171 zcmZ2iv#w@B0E-a+1(S&(MvO`m+gpVB85kJcUHyVwZJl!xi;FXp6LThWGv1s0mq}^z zOGfp{^30-wyg)TRj!v#Vw!Wps`30$YlLeUWsPh0tL;OP=eOx?)or7%+g@JruR~Ju5 zTbIoA%#y?$1>e+^%*4qq%!-q1m~AG%X6~50gV}g;F-wOyNUgKKudl0Lh^<FzPENi; TNk(c>>SjJxF_z8NoS#hqTxBz7 delta 173 zcmZ2iv#w@B0E^4+hJuM9MvRIR+gm2fG2WXj$D}?vo9T`qF9QREkE4^TkF9TMaehH+ z-sC@wN~(fD(I8hJSI1yiXa7*Ykf2E0h;SaDV2FQ+qmPScuye4j;p9AKMR8%Eps%Zo zr=zV)W_o5xVvd4uYD#9}<bGzG$-ykflTR~u0PPc>JeQ?Vm>;Ot-PJG1)z&#DvA8%h VIWcFmDytaF<OEjn&DNZsO#u8~Gh_e& diff --git a/api/tests/music/test.opus b/api/tests/music/test.opus index 92634ce507bbe0bc0f0d36b7ea6abe34965cafe9..c1c324bcc336b13924b64f3e266895bb9028c1a5 100644 GIT binary patch delta 190 zcmbPTHM?qpE6cZcHj^iMDl;lg%xx0pXJBA(cl8T$wRO%(EH2JWPRyD3{@&z=OiGi_ zGODWy0;PjoeOw)bU7h_y{X&8wZ6m^Yfr37cPOd(-zNN+a1*v(HzcAiW=K+d__=h<9 zxOfIT2iqD71NpwLE}o9IE}7|>C5br-zNsmhiIX*$6(=V!+e|*s+%b6$v+>0D;*;}O m3dKRno&9}%UHw9AJyLUW@)b%lQj1bIe_|13*(}HT*BAimC_HQc delta 207 zcmbPTHM?qpE6bfTT3aT1Dl;lh%x#*?#CVTWnSp`9(Z?y&cd`SE++=^IJA%AG5g$h< zS07v7(&GGr)V#?L7?olLfucdKKCX_zuFn3Uej!1Twh`exK*13I5Jw*u&tT_ZTSE{Z z#PkdGb#e`|H3S(2mJbPXboLImH4z31_`14yI@-Eqre~HU<|z24rer2gE@rlwY|dgl uc|CK-<SdpBVSb=GcUQk4S6k<t#Ny)2<iwoKoUEcOlO0&aH_LJUH3k6PnmLvL diff --git a/api/tests/music/test_metadata.py b/api/tests/music/test_metadata.py index f6aa513a..d842d331 100644 --- a/api/tests/music/test_metadata.py +++ b/api/tests/music/test_metadata.py @@ -30,6 +30,7 @@ DATA_DIR = os.path.dirname(os.path.abspath(__file__)) ), ("license", "Dummy license: http://creativecommons.org/licenses/by-sa/4.0/"), ("copyright", "Someone"), + ("comment", "Hello there"), ], ) def test_can_get_metadata_from_ogg_file(field, value): @@ -58,6 +59,7 @@ def test_can_get_metadata_all(): "license": "Dummy license: http://creativecommons.org/licenses/by-sa/4.0/", "copyright": "Someone", "genre": "Classical", + "comment": "Hello there", } assert data.all() == expected @@ -81,6 +83,7 @@ def test_can_get_metadata_all(): ), ("license", "Dummy license: http://creativecommons.org/licenses/by-sa/4.0/"), ("copyright", "Someone"), + ("comment", "Hello there"), ], ) def test_can_get_metadata_from_opus_file(field, value): @@ -104,6 +107,7 @@ def test_can_get_metadata_from_opus_file(field, value): ("mbid", "124d0150-8627-46bc-bc14-789a3bc960c8"), ("musicbrainz_artistid", "c3bc80a6-1f4a-4e17-8cf0-6b1efe8302f1"), ("musicbrainz_albumartistid", "c3bc80a6-1f4a-4e17-8cf0-6b1efe8302f1"), + ("comment", "Hello there"), # somehow, I cannot successfully create an ogg theora file # with the proper license field # ("license", "Dummy license: http://creativecommons.org/licenses/by-sa/4.0/"), @@ -132,6 +136,7 @@ def test_can_get_metadata_from_ogg_theora_file(field, value): ("musicbrainz_albumartistid", "9c6bddde-6228-4d9f-ad0d-03f6fcb19e13"), ("license", "https://creativecommons.org/licenses/by-nc-nd/2.5/"), ("copyright", "Someone"), + ("comment", "Hello there"), ], ) def test_can_get_metadata_from_id3_mp3_file(field, value): @@ -181,6 +186,7 @@ def test_can_get_pictures(name): ("musicbrainz_albumartistid", "b7ffd2af-418f-4be2-bdd1-22f8b48613da"), ("license", "http://creativecommons.org/licenses/by-nc-sa/3.0/us/"), ("copyright", "2008 nin"), + ("comment", "Hello there"), ], ) def test_can_get_metadata_from_flac_file(field, value): @@ -210,6 +216,7 @@ def test_can_get_metadata_from_flac_file(field, value): ("license", "Dummy license: http://creativecommons.org/licenses/by-sa/4.0/"), ("copyright", "Someone"), ("genre", "Dubstep"), + ("comment", "Hello there"), ], ) def test_can_get_metadata_from_m4a_file(field, value): @@ -294,6 +301,7 @@ def test_metadata_fallback_ogg_theora(mocker): "license": "https://creativecommons.org/licenses/by-nc-nd/2.5/", "copyright": "Someone", "tags": ["Funk"], + "description": {"text": "Hello there", "content_type": "text/plain"}, }, ), ( @@ -327,6 +335,7 @@ def test_metadata_fallback_ogg_theora(mocker): "license": "Dummy license: http://creativecommons.org/licenses/by-sa/4.0/", "copyright": "Someone", "tags": ["Classical"], + "description": {"text": "Hello there", "content_type": "text/plain"}, }, ), ( @@ -360,6 +369,7 @@ def test_metadata_fallback_ogg_theora(mocker): "license": "Dummy license: http://creativecommons.org/licenses/by-sa/4.0/", "copyright": "Someone", "tags": ["Classical"], + "description": {"text": "Hello there", "content_type": "text/plain"}, }, ), ( @@ -391,6 +401,7 @@ def test_metadata_fallback_ogg_theora(mocker): # with the proper license field # ("license", "Dummy license: http://creativecommons.org/licenses/by-sa/4.0/"), "copyright": "â„— 2012 JKP GmbH & Co. KG", + "description": {"text": "Hello there", "content_type": "text/plain"}, }, ), ( @@ -420,6 +431,7 @@ def test_metadata_fallback_ogg_theora(mocker): "license": "http://creativecommons.org/licenses/by-nc-sa/3.0/us/", "copyright": "2008 nin", "tags": ["Industrial"], + "description": {"text": "Hello there", "content_type": "text/plain"}, }, ), ], @@ -528,10 +540,12 @@ def test_fake_metadata_with_serializer(): "musicbrainz_albumartistid": "013c8e5b-d72a-4cd3-8dee-6c64d6125823;5b4d7d2d-36df-4b38-95e3-a964234f520f", "license": "Dummy license: http://creativecommons.org/licenses/by-sa/4.0/", "copyright": "Someone", + "comment": "hello there", } expected = { "title": "Peer Gynt Suite no. 1, op. 46: I. Morning", + "description": {"text": "hello there", "content_type": "text/plain"}, "artists": [ { "name": "Edvard Grieg", diff --git a/api/tests/music/test_mutations.py b/api/tests/music/test_mutations.py index ff2982df..eff6925d 100644 --- a/api/tests/music/test_mutations.py +++ b/api/tests/music/test_mutations.py @@ -1,6 +1,7 @@ import datetime import pytest +from funkwhale_api.common import serializers as common_serializers from funkwhale_api.music import licenses from funkwhale_api.music import mutations @@ -195,3 +196,26 @@ def test_mutation_set_attachment_cover(factories, now, mocker): assert obj.attachment_cover == new_attachment assert mutation.previous_state["cover"] == old_attachment.uuid + + +@pytest.mark.parametrize( + "factory_name", ["music.Track", "music.Album", "music.Artist"], +) +def test_album_mutation_description(factory_name, factories, mocker): + mocker.patch("funkwhale_api.federation.routes.outbox.dispatch") + content = factories["common.Content"]() + obj = factories[factory_name](description=content) + mutation = factories["common.Mutation"]( + type="update", + target=obj, + payload={"description": {"content_type": "text/plain", "text": "hello there"}}, + ) + mutation.apply() + obj.refresh_from_db() + + assert obj.description.content_type == "text/plain" + assert obj.description.text == "hello there" + assert ( + mutation.previous_state["description"] + == common_serializers.ContentSerializer(content).data + ) diff --git a/api/tests/music/test_serializers.py b/api/tests/music/test_serializers.py index ae486997..a35180ce 100644 --- a/api/tests/music/test_serializers.py +++ b/api/tests/music/test_serializers.py @@ -501,3 +501,21 @@ def test_upload_with_channel_validates_import_metadata(factories, uploaded_audio ) with pytest.raises(serializers.serializers.ValidationError): assert serializer.is_valid(raise_exception=True) + + +@pytest.mark.parametrize( + "factory_name, serializer_class", + [ + ("music.Artist", serializers.ArtistWithAlbumsSerializer), + ("music.Album", serializers.AlbumSerializer), + ("music.Track", serializers.TrackSerializer), + ], +) +def test_detail_serializers_with_description_description( + factory_name, serializer_class, factories +): + content = factories["common.Content"]() + obj = factories[factory_name](description=content) + expected = common_serializers.ContentSerializer(content).data + serializer = serializer_class(obj, context={"description": True}) + assert serializer.data["description"] == expected diff --git a/api/tests/music/test_tasks.py b/api/tests/music/test_tasks.py index 449be0c0..3f09c537 100644 --- a/api/tests/music/test_tasks.py +++ b/api/tests/music/test_tasks.py @@ -128,6 +128,21 @@ def test_can_create_track_from_file_metadata_featuring(factories): assert track.artist.name == "Santana feat. Chris Cornell" +def test_can_create_track_from_file_metadata_description(factories): + metadata = { + "title": "Whole Lotta Love", + "position": 1, + "disc_number": 1, + "description": {"text": "hello there", "content_type": "text/plain"}, + "album": {"title": "Test album"}, + "artists": [{"name": "Santana"}], + } + track = tasks.get_track_from_import_metadata(metadata) + + assert track.description.text == "hello there" + assert track.description.content_type == "text/plain" + + def test_can_create_track_from_file_metadata_mbid(factories, mocker): metadata = { "title": "Test track", @@ -607,6 +622,7 @@ def test_federation_audio_track_to_metadata(now, mocker): "copyright": "2018 Someone", "attributedTo": "http://track.attributed", "tag": [{"type": "Hashtag", "name": "TrackTag"}], + "content": "hello there", "album": { "published": published.isoformat(), "type": "Album", @@ -616,12 +632,16 @@ def test_federation_audio_track_to_metadata(now, mocker): "released": released.isoformat(), "tag": [{"type": "Hashtag", "name": "AlbumTag"}], "attributedTo": "http://album.attributed", + "content": "album desc", + "mediaType": "text/plain", "artists": [ { "type": "Artist", "published": published.isoformat(), "id": "http://hello.artist", "name": "John Smith", + "content": "album artist desc", + "mediaType": "text/markdown", "musicbrainzId": str(uuid.uuid4()), "attributedTo": "http://album-artist.attributed", "tag": [{"type": "Hashtag", "name": "AlbumArtistTag"}], @@ -639,6 +659,8 @@ def test_federation_audio_track_to_metadata(now, mocker): "type": "Artist", "id": "http://hello.trackartist", "name": "Bob Smith", + "content": "artist desc", + "mediaType": "text/html", "musicbrainzId": str(uuid.uuid4()), "attributedTo": "http://artist.attributed", "tag": [{"type": "Hashtag", "name": "ArtistTag"}], @@ -658,6 +680,7 @@ def test_federation_audio_track_to_metadata(now, mocker): "fid": payload["id"], "attributed_to": references["http://track.attributed"], "tags": ["TrackTag"], + "description": {"content_type": "text/html", "text": "hello there"}, "album": { "title": payload["album"]["name"], "attributed_to": references["http://album.attributed"], @@ -666,6 +689,7 @@ def test_federation_audio_track_to_metadata(now, mocker): "fid": payload["album"]["id"], "fdate": serializer.validated_data["album"]["published"], "tags": ["AlbumTag"], + "description": {"content_type": "text/plain", "text": "album desc"}, "artists": [ { "name": a["name"], @@ -675,6 +699,10 @@ def test_federation_audio_track_to_metadata(now, mocker): "fdate": serializer.validated_data["album"]["artists"][i][ "published" ], + "description": { + "content_type": "text/markdown", + "text": "album artist desc", + }, "tags": ["AlbumArtistTag"], } for i, a in enumerate(payload["album"]["artists"]) @@ -690,6 +718,7 @@ def test_federation_audio_track_to_metadata(now, mocker): "fdate": serializer.validated_data["artists"][i]["published"], "attributed_to": references["http://artist.attributed"], "tags": ["ArtistTag"], + "description": {"content_type": "text/html", "text": "artist desc"}, } for i, a in enumerate(payload["artists"]) ], diff --git a/api/tests/music/test_theora.ogg b/api/tests/music/test_theora.ogg index 3aa7117387a87115d9316f9d34205254381c95ec..ae21c94bc8a505a8c9e3f16c2bb9f7678dce452c 100644 GIT binary patch literal 159349 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 z℞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%0AN~v7V?`GV2G=Y;;dlM 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 J$Ddrg_CG&KL^1#X delta 274 zcmex*hqG}L<A#SKo(xdX72lP~2xM~!?))PC9}YU;EC_?0xh%gZDYKXtsMII1EX~wh z&%#*G(7?cIv%KhT79~!QxTBM+kFA$?fFO_)<m%(<80_loAL<tp6lv=iGWnvE(qtd0 zRtXWHtdnDqv%ib0t%Z@PnTeUHrKzEb@nk(IISVm_*5DAwkkDY;{Is;p<jlkz9-vH! ze~6=xi)XNNu&p784`TX-`Z~D=O=gr9nXD=uJlT*@YjUsj#K{+#L??U5bWDCOqrk|x f{i6ZXWTx%RrcA8n985rsf0#F#ZWqX5N@W57aynT` diff --git a/api/tests/music/test_views.py b/api/tests/music/test_views.py index 744edd2d..f78e6988 100644 --- a/api/tests/music/test_views.py +++ b/api/tests/music/test_views.py @@ -1256,3 +1256,22 @@ def test_search_get_fts_stop_words(settings, logged_in_api_client, factories): assert response.status_code == 200 assert response.data == expected + + +@pytest.mark.parametrize( + "route, factory_name", + [ + ("api:v1:artists-detail", "music.Artist"), + ("api:v1:albums-detail", "music.Album"), + ("api:v1:tracks-detail", "music.Track"), + ], +) +def test_detail_includes_description_key( + route, factory_name, logged_in_api_client, factories +): + obj = factories[factory_name]() + url = reverse(route, kwargs={"pk": obj.pk}) + + response = logged_in_api_client.get(url) + + assert response.data["description"] is None diff --git a/front/src/components/library/EditForm.vue b/front/src/components/library/EditForm.vue index 6f4afcca..70f83d04 100644 --- a/front/src/components/library/EditForm.vue +++ b/front/src/components/library/EditForm.vue @@ -77,6 +77,10 @@ </button> </template> + <template v-else-if="fieldConfig.type === 'content'"> + <label :for="fieldConfig.id">{{ fieldConfig.label }}</label> + <textarea v-model="values[fieldConfig.id].text" :name="fieldConfig.id" :id="fieldConfig.id" rows="3"></textarea> + </template> <template v-else-if="fieldConfig.type === 'attachment'"> <label :for="fieldConfig.id">{{ fieldConfig.label }}</label> <attachment-input @@ -100,8 +104,8 @@ <translate translate-context="Content/Library/Button.Label">Clear</translate> </button> </template> - <div v-if="values[fieldConfig.id] != initialValues[fieldConfig.id]"> - <button class="ui tiny basic right floated reset button" form="noop" @click.prevent="values[fieldConfig.id] = initialValues[fieldConfig.id]"> + <div v-if="!lodash.isEqual(values[fieldConfig.id], initialValues[fieldConfig.id])"> + <button class="ui tiny basic right floated reset button" form="noop" @click.prevent="values[fieldConfig.id] = lodash.clone(initialValues[fieldConfig.id])"> <i class="undo icon"></i> <translate translate-context="Content/Library/Button.Label">Reset to initial value</translate> </button> @@ -156,6 +160,7 @@ export default { summary: '', submittedMutation: null, showPendingReview: true, + lodash, } }, created () { @@ -216,8 +221,8 @@ export default { setValues () { let self = this this.config.fields.forEach(f => { - self.$set(self.values, f.id, f.getValue(self.object)) - self.$set(self.initialValues, f.id, self.values[f.id]) + self.$set(self.values, f.id, lodash.clone(f.getValue(self.object))) + self.$set(self.initialValues, f.id, lodash.clone(self.values[f.id])) }) }, submit() { diff --git a/front/src/edits.js b/front/src/edits.js index 84496771..0757ed0d 100644 --- a/front/src/edits.js +++ b/front/src/edits.js @@ -5,8 +5,20 @@ function getTagsValueRepr (val) { return val.slice().sort().join('\n') } +function getContentValueRepr (val) { + return val.text +} + export default { getConfigs () { + const description = { + id: 'description', + type: 'content', + required: true, + label: this.$pgettext('*/*/*/Noun', 'Description'), + getValue: (obj) => { return obj.description || {text: null, content_type: 'text/markdown'}}, + getValueRepr: getContentValueRepr + } return { artist: { fields: [ @@ -17,6 +29,7 @@ export default { label: this.$pgettext('*/*/*/Noun', 'Name'), getValue: (obj) => { return obj.name } }, + description, { id: 'tags', type: 'tags', @@ -24,7 +37,7 @@ export default { label: this.$pgettext('*/*/*/Noun', 'Tags'), getValue: (obj) => { return obj.tags }, getValueRepr: getTagsValueRepr - } + }, ] }, album: { @@ -36,6 +49,7 @@ export default { label: this.$pgettext('*/*/*/Noun', 'Title'), getValue: (obj) => { return obj.title } }, + description, { id: 'release_date', type: 'text', @@ -75,6 +89,7 @@ export default { label: this.$pgettext('*/*/*/Noun', 'Title'), getValue: (obj) => { return obj.title } }, + description, { id: 'position', type: 'text', diff --git a/front/src/views/admin/library/AlbumDetail.vue b/front/src/views/admin/library/AlbumDetail.vue index fdfc4c7f..6ca2acf8 100644 --- a/front/src/views/admin/library/AlbumDetail.vue +++ b/front/src/views/admin/library/AlbumDetail.vue @@ -129,6 +129,12 @@ {{ object.domain }} </td> </tr> + <tr v-if="object.description"> + <td> + <translate translate-context="'*/*/*/Noun">Description</translate> + </td> + <td v-html="object.description.html"></td> + </tr> </tbody> </table> </section> diff --git a/front/src/views/admin/library/ArtistDetail.vue b/front/src/views/admin/library/ArtistDetail.vue index e6b4a127..72e1bcb0 100644 --- a/front/src/views/admin/library/ArtistDetail.vue +++ b/front/src/views/admin/library/ArtistDetail.vue @@ -117,6 +117,12 @@ {{ object.domain }} </td> </tr> + <tr v-if="object.description"> + <td> + <translate translate-context="'*/*/*/Noun">Description</translate> + </td> + <td v-html="object.description.html"></td> + </tr> </tbody> </table> </section> diff --git a/front/src/views/admin/library/TrackDetail.vue b/front/src/views/admin/library/TrackDetail.vue index 152d3390..d7f836d3 100644 --- a/front/src/views/admin/library/TrackDetail.vue +++ b/front/src/views/admin/library/TrackDetail.vue @@ -181,6 +181,12 @@ {{ object.domain }} </td> </tr> + <tr v-if="object.description"> + <td> + <translate translate-context="'*/*/*/Noun">Description</translate> + </td> + <td v-html="object.description.html"></td> + </tr> </tbody> </table> </section> -- GitLab