From 2b700ebb16483589d9518dd3a4de2f06d3c53a7e Mon Sep 17 00:00:00 2001 From: Lev Plyusnin Date: Tue, 1 Aug 2023 16:33:36 +0500 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D1=81=D1=81=D1=8B=D0=BB=D0=BA=D0=B8=20?= =?UTF-8?q?=D0=BD=D0=B0=20=D1=82=D1=80=D0=B5=D0=BA=20=D0=B2=20=D0=BC=D0=B5?= =?UTF-8?q?=D1=82=D0=B0=D0=B4=D0=B0=D0=BD=D0=BD=D1=8B=D0=B5=20.mp3=20?= =?UTF-8?q?=D1=84=D0=B0=D0=B9=D0=BB=D0=B0=20(#19)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ссылка сохраняется в фрейме WOAF (Official audio file webpage) --- main.py | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/main.py b/main.py index e226d87..eabc1b2 100644 --- a/main.py +++ b/main.py @@ -31,7 +31,8 @@ PLAYLIST_RE = re.compile(r'([\w\-._]+)/playlists/(\d+)$') FILENAME_CLEAR_RE = re.compile(r'[^\w\-\'() ]+') -TITLE_FMT = '%(title)s (%(version)s)' +TITLE_TEMPLATE = '{tile} ({version})' +TRACK_URL_TEMPLATE = 'https://music.yandex.ru/album/{album_id}/track/{track_id}' @dataclass @@ -70,7 +71,7 @@ def parse_artists(artists: list) -> list[str]: def parse_title(data: dict) -> str: title = data['title'] if version := data.get('version'): - title = TITLE_FMT % {'title': title, 'version': version} + title = TITLE_TEMPLATE.format(title=title, version=version) return title @@ -280,8 +281,8 @@ def set_id3_tags(path: Path, track: BasicTrackInfo, lyrics: Optional[str], else: release_date = track.album.year audiofile = eyed3.load(path) - if audiofile is None: - raise ValueError + assert audiofile + tag = audiofile.initTag() tag.artist = chr(0).join(track.artists) @@ -292,6 +293,8 @@ def set_id3_tags(path: Path, track: BasicTrackInfo, lyrics: Optional[str], tag.disc_num = track.disc_number tag.release_date = tag.original_release_date = release_date tag.encoded_by = ENCODED_BY + tag.audio_file_url = TRACK_URL_TEMPLATE.format(album_id=track.album.id, + track_id=track.id) if lyrics is not None: tag.lyrics.set(lyrics) @@ -472,8 +475,8 @@ if __name__ == '__main__': if isinstance(track, FullTrackInfo): lyrics = track.lyrics else: - full_info = get_full_track_info(session, track.id) - lyrics = full_info.lyrics + full_track = get_full_track_info(session, track.id) + lyrics = full_track.lyrics cover = None cover_url = track.cover_info.cover_url(args.cover_resolution)