From 66a9a623767ed513ac0285671c2524151ea80ed8 Mon Sep 17 00:00:00 2001 From: Eliot Berriot <contact@eliotberriot.com> Date: Mon, 9 Mar 2020 17:21:15 +0100 Subject: [PATCH] Fix #1037: More resilient tag parsing with empty release date or album artist --- api/funkwhale_api/music/metadata.py | 6 ++++-- api/tests/music/test_metadata.py | 1 + changes/changelog.d/1037.bugfix | 1 + 3 files changed, 6 insertions(+), 2 deletions(-) create mode 100644 changes/changelog.d/1037.bugfix diff --git a/api/funkwhale_api/music/metadata.py b/api/funkwhale_api/music/metadata.py index 4e05580103..481f9a7e2d 100644 --- a/api/funkwhale_api/music/metadata.py +++ b/api/funkwhale_api/music/metadata.py @@ -648,7 +648,7 @@ class MBIDField(serializers.UUIDField): class ArtistSerializer(serializers.Serializer): - name = serializers.CharField(required=False, allow_null=True) + name = serializers.CharField(required=False, allow_null=True, allow_blank=True) mbid = MBIDField() def __init__(self, *args, **kwargs): @@ -664,7 +664,9 @@ class ArtistSerializer(serializers.Serializer): class AlbumSerializer(serializers.Serializer): title = serializers.CharField(required=False, allow_null=True) mbid = MBIDField() - release_date = PermissiveDateField(required=False, allow_null=True) + release_date = PermissiveDateField( + required=False, allow_null=True, allow_blank=True + ) def validate_title(self, v): if self.context.get("strict", True) and not v: diff --git a/api/tests/music/test_metadata.py b/api/tests/music/test_metadata.py index 2488ebcc8d..d46853ea02 100644 --- a/api/tests/music/test_metadata.py +++ b/api/tests/music/test_metadata.py @@ -247,6 +247,7 @@ def test_can_get_metadata_from_flac_file_not_crash_if_empty(): ("2017-14-01 01:32", datetime.date(2017, 1, 14)), # deezer format ("2017-02", datetime.date(2017, 1, 1)), # weird format that exists ("0000", None), + ("", None), ("nonsense", None), ], ) diff --git a/changes/changelog.d/1037.bugfix b/changes/changelog.d/1037.bugfix new file mode 100644 index 0000000000..38771e171c --- /dev/null +++ b/changes/changelog.d/1037.bugfix @@ -0,0 +1 @@ +More resilient tag parsing with empty release date or album artist (#1037) -- GitLab