From 99cc98b10fece527dcb8697b9b48034451b2d2bd Mon Sep 17 00:00:00 2001 From: Lev Date: Tue, 3 Jan 2023 20:37:22 +0700 Subject: [PATCH] =?UTF-8?q?=D0=A4=D0=B8=D0=BA=D1=81=20=D0=B4=D0=BB=D1=8F?= =?UTF-8?q?=20=D1=82=D1=80=D0=B5=D0=BA=D0=BE=D0=B2=20=D1=83=20=D0=BA=D0=BE?= =?UTF-8?q?=D1=82=D0=BE=D1=80=D1=8B=D1=85=20=D0=BE=D1=82=D1=81=D1=83=D1=82?= =?UTF-8?q?=D1=81=D1=82=D0=B2=D1=83=D0=B5=D1=82=20releaseDate?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/main.py b/main.py index e8d106c..b4d55a1 100644 --- a/main.py +++ b/main.py @@ -43,7 +43,7 @@ class PlaylistId: class BasicAlbumInfo: id: str title: str - release_date: dt.datetime + release_date: Optional[dt.datetime] year: int artists: list[str] @@ -55,7 +55,9 @@ class BasicAlbumInfo: artists = [a['name'] for a in json['artists']] title = json['title'] version = json.get('version', None) - release_date = dt.datetime.fromisoformat(json['releaseDate']) + release_date = json.get('releaseDate', None) + if release_date is not None: + release_date = dt.datetime.fromisoformat(release_date) if version is not None: title = TITLE_FMT % {'title': title, 'version': version} return BasicAlbumInfo(id=json['id'], title=title, year=json['year'], @@ -237,6 +239,10 @@ def prepare_track_path(path: Path, prepare_path: bool, track: BasicTrackInfo) -> def set_id3_tags(path: Path, track: BasicTrackInfo, lyrics: Optional[str], album_cover: Optional[bytes]) -> None: + if track.album.release_date is not None: + release_date = eyed3.core.Date(*track.album.release_date.timetuple()[:6]) + else: + release_date = track.album.year audiofile = eyed3.load(path) audiofile.tag = tag = eyed3.id3.tag.Tag() tag.artist = '; '.join(track.artists) @@ -245,8 +251,7 @@ def set_id3_tags(path: Path, track: BasicTrackInfo, lyrics: Optional[str], tag.title = track.title tag.track_num = track.number tag.disc_num = track.disc_number - tag.release_date = tag.original_release_date \ - = eyed3.core.Date(*track.album.release_date.timetuple()[:6]) + tag.release_date = tag.original_release_date = release_date tag.encoded_by = ENCODED_BY if lyrics is not None: