Фикс для треков у которых отсутствует releaseDate

This commit is contained in:
Lev 2023-01-03 20:37:22 +07:00
parent 2101fefdc8
commit 99cc98b10f
No known key found for this signature in database
GPG key ID: 21C6C2C9C0A4460D

13
main.py
View file

@ -43,7 +43,7 @@ class PlaylistId:
class BasicAlbumInfo: class BasicAlbumInfo:
id: str id: str
title: str title: str
release_date: dt.datetime release_date: Optional[dt.datetime]
year: int year: int
artists: list[str] artists: list[str]
@ -55,7 +55,9 @@ class BasicAlbumInfo:
artists = [a['name'] for a in json['artists']] artists = [a['name'] for a in json['artists']]
title = json['title'] title = json['title']
version = json.get('version', None) 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: if version is not None:
title = TITLE_FMT % {'title': title, 'version': version} title = TITLE_FMT % {'title': title, 'version': version}
return BasicAlbumInfo(id=json['id'], title=title, year=json['year'], 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], def set_id3_tags(path: Path, track: BasicTrackInfo, lyrics: Optional[str],
album_cover: Optional[bytes]) -> None: 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 = eyed3.load(path)
audiofile.tag = tag = eyed3.id3.tag.Tag() audiofile.tag = tag = eyed3.id3.tag.Tag()
tag.artist = '; '.join(track.artists) 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.title = track.title
tag.track_num = track.number tag.track_num = track.number
tag.disc_num = track.disc_number tag.disc_num = track.disc_number
tag.release_date = tag.original_release_date \ tag.release_date = tag.original_release_date = release_date
= eyed3.core.Date(*track.album.release_date.timetuple()[:6])
tag.encoded_by = ENCODED_BY tag.encoded_by = ENCODED_BY
if lyrics is not None: if lyrics is not None: