From 2c510f37edc19c051970a064e87ff8da0958db64 Mon Sep 17 00:00:00 2001 From: "Mr. Pixel Cat" Date: Sun, 14 Jan 2024 14:28:18 +0100 Subject: [PATCH] added support for 'track-number' placeholder --- ymd/cli.py | 9 +++++++-- ymd/core.py | 3 ++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/ymd/cli.py b/ymd/cli.py index 3d530b8..bf562e1 100644 --- a/ymd/cli.py +++ b/ymd/cli.py @@ -131,7 +131,7 @@ def main(): help=show_default( "Поддерживает следующие заполнители:" " #number, #artist, #album-artist, #title," - " #album, #year, #artist-id, #album-id, #track-id" + " #album, #year, #artist-id, #album-id, #track-id, #track-number" ), ) @@ -237,9 +237,14 @@ def main(): print(f"Треков: {len(result_tracks)}") covers_cache: dict[str, bytes] = {} + track_number = 0 + # track number should be padded to an appropriate string width with zeroes, e.g: + # up to 99 tracks in total - 01, 02, ...; up to 999 tracks - 001, 002, ...; etc. + track_number_pad = len(str(len(result_tracks))) # get max track number width for track in result_tracks: + track_number += 1 save_path = args.dir / core.prepare_track_path( - args.path_pattern, track, args.unsafe_path + args.path_pattern, track, args.unsafe_path, str(track_number).zfill(track_number_pad) ) if args.skip_existing and save_path.is_file(): continue diff --git a/ymd/core.py b/ymd/core.py index 514cd8d..1f029b9 100644 --- a/ymd/core.py +++ b/ymd/core.py @@ -19,7 +19,7 @@ DEFAULT_COVER_RESOLUTION = 400 def prepare_track_path( - path_pattern: Path, track: BasicTrackInfo, unsafe_path: bool = False + path_pattern: Path, track: BasicTrackInfo, unsafe_path: bool = False, track_number_str: str = "" ) -> Path: path_str = str(path_pattern) album = track.album @@ -29,6 +29,7 @@ def prepare_track_path( "#artist-id": artist.name, "#album-id": album.id, "#track-id": track.id, + "#track-number": track_number_str, "#number": track.number, "#artist": artist.name, "#title": track.title,