From b9d42c4d7df34796c3783e74ba7fc51b5835e699 Mon Sep 17 00:00:00 2001 From: logykk Date: Wed, 17 Nov 2021 21:29:15 +1300 Subject: [PATCH] Fixed issue when downloading multiple playlists --- zspotify/app.py | 7 ++++++- zspotify/playlist.py | 17 +++++++++-------- zspotify/track.py | 2 +- 3 files changed, 16 insertions(+), 10 deletions(-) diff --git a/zspotify/app.py b/zspotify/app.py index 8e961b42..2d315094 100644 --- a/zspotify/app.py +++ b/zspotify/app.py @@ -259,8 +259,13 @@ def search(search_term): print('NO RESULTS FOUND - EXITING...') else: selection = '' + print('\n> SELECT A DOWNLOAD OPTION BY ID') + print('> SELECT A RANGE BY ADDING A DASH BETWEEN BOTH ID\'s') + print('> OR PARTICULAR OPTIONS BY ADDING A COMMA BETWEEN ID\'s') + print('> For example, typing 5 to get option 5 or 10-20 to get\nevery option from 10-20 (inclusive)\n') + print('> Or type 10,12,15,18 to get those options in particular') while len(selection) == 0: - selection = str(input('SELECT ITEM(S) BY S.NO: ')) + selection = str(input('ID(s): ')) inputs = split_input(selection) for pos in inputs: position = int(pos) diff --git a/zspotify/playlist.py b/zspotify/playlist.py index d323723e..4a2b8916 100644 --- a/zspotify/playlist.py +++ b/zspotify/playlist.py @@ -2,7 +2,7 @@ from tqdm import tqdm from const import ITEMS, ID, TRACK, NAME from track import download_track -from utils import fix_filename +from utils import fix_filename, split_input from zspotify import ZSpotify MY_PLAYLISTS_URL = 'https://api.spotify.com/v1/me/playlists' @@ -69,17 +69,18 @@ def download_from_user_playlist(): print(str(count) + ': ' + playlist[NAME].strip()) count += 1 + selection = '' print('\n> SELECT A PLAYLIST BY ID') print('> SELECT A RANGE BY ADDING A DASH BETWEEN BOTH ID\'s') + print('> OR PARTICULAR OPTIONS BY ADDING A COMMA BETWEEN ID\'s') print('> For example, typing 10 to get one playlist or 10-20 to get\nevery playlist from 10-20 (inclusive)\n') + print('> Or type 10,12,15,18 to get those playlists in particular') + while len(selection) == 0: + selection = str(input('ID(s): ')) + playlist_choices = map(int, split_input(selection)) - playlist_choices = map(int, input('ID(s): ').split('-')) - - start = next(playlist_choices) - 1 - end = next(playlist_choices, start + 1) - - for playlist_number in range(start, end): - playlist = playlists[playlist_number] + for playlist_number in playlist_choices: + playlist = playlists[playlist_number - 1] print(f'Downloading {playlist[NAME].strip()}') download_playlist(playlist) diff --git a/zspotify/track.py b/zspotify/track.py index 6b2bec1d..a80ad92e 100644 --- a/zspotify/track.py +++ b/zspotify/track.py @@ -176,7 +176,7 @@ def convert_audio_format(filename) -> None: os.replace(filename, temp_filename) download_format = ZSpotify.get_config(DOWNLOAD_FORMAT).lower() - file_codec = CODEC_MAP.get(download_format, "copy") + file_codec = CODEC_MAP.get(download_format, 'copy') if file_codec != 'copy': bitrate = ZSpotify.get_config(BITRATE) if not bitrate: