Added leading zeros in track_number.Fixed issue #592

This commit is contained in:
py-coder
2019-08-01 10:17:24 +05:45
parent d45655a2b7
commit 0202c65110
17 changed files with 167 additions and 87 deletions

View File

@@ -1,8 +1,10 @@
from logzero import logger as log
import os
import sys
import math
import urllib.request
from spotdl import const
try:
@@ -73,7 +75,9 @@ def is_youtube(raw_song):
return status
def format_string(string_format, tags, slugification=False, force_spaces=False):
def format_string(
string_format, tags, slugification=False, force_spaces=False, total_songs=0
):
""" Generate a string of the format '[artist] - [song]' for the given spotify song. """
format_tags = dict(formats)
format_tags[0] = tags["name"]
@@ -93,9 +97,16 @@ def format_string(string_format, tags, slugification=False, force_spaces=False):
k: sanitize_title(str(v), ok="'-_()[]{}") if slugification else str(v)
for k, v in format_tags.items()
}
# calculating total digits presnet in total_songs to prepare a zfill.
total_digits = 0 if total_songs == 0 else int(math.log10(total_songs)) + 1
for x in formats:
format_tag = "{" + formats[x] + "}"
# Making consistent track number by prepending zero
# on it according to number of digits in total songs
if format_tag == "{track_number}":
format_tags_sanitized[x] = format_tags_sanitized[x].zfill(total_digits)
string_format = string_format.replace(format_tag, format_tags_sanitized[x])
if const.args.no_spaces and not force_spaces: