From 51d63d81ebb54eeccb0b90789eab905e341e5bc3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=96=E7=95=8C=E8=A7=82=E5=AF=9F=E6=97=A5=E5=BF=97?= Date: Sun, 15 Jun 2025 17:09:22 +0800 Subject: [PATCH] feat: support multi genres --- src/metadata.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/metadata.py b/src/metadata.py index 5caf199..d0595f8 100644 --- a/src/metadata.py +++ b/src/metadata.py @@ -1,4 +1,4 @@ -from typing import Optional, Dict +from typing import Optional, Dict, List from creart import it from mutagen.mp4 import MP4Cover @@ -44,7 +44,7 @@ class SongMetadata(BaseModel): album: Optional[str] = None album_created: Optional[str] = None composer: Optional[str] = None - genre: Optional[str] = None + genre: Optional[List[str]] = None created: Optional[str] = None track: Optional[str] = None tracknum: Optional[int] = None @@ -110,6 +110,9 @@ class SongMetadata(BaseModel): if key == "upc": tags.update({TAG_MAPPING[key]: (value.encode(),)}) continue + if key == "genre": + tags.update({TAG_MAPPING[key]: value}) + continue tags.update({TAG_MAPPING[key]: str(value)}) return tags @@ -118,7 +121,7 @@ class SongMetadata(BaseModel): return cls(title=song_data.attributes.name, artist=song_data.attributes.artistName, album_artist=song_data.relationships.albums.data[0].attributes.artistName, album=song_data.attributes.albumName, composer=song_data.attributes.composerName, - genre=song_data.attributes.genreNames[0], created=song_data.attributes.releaseDate, + genre=song_data.attributes.genreNames, created=song_data.attributes.releaseDate, track=song_data.attributes.name, tracknum=song_data.attributes.trackNumber, disk=song_data.attributes.discNumber, lyrics="", cover_url=song_data.attributes.artwork.url, copyright=song_data.relationships.albums.data[0].attributes.copyright,