mirror of
https://github.com/THIS-IS-NOT-A-BACKUP/zspotify.git
synced 2025-07-01 15:23:15 +00:00
Support for selecting multiple options from search
This commit is contained in:
parent
6a808b68b3
commit
cb7173280b
54
zspotify.py
54
zspotify.py
@ -44,6 +44,8 @@ OVERRIDE_AUTO_WAIT = False
|
|||||||
CHUNK_SIZE = 50000
|
CHUNK_SIZE = 50000
|
||||||
|
|
||||||
# miscellaneous functions for general use
|
# miscellaneous functions for general use
|
||||||
|
|
||||||
|
|
||||||
def clear():
|
def clear():
|
||||||
""" Clear the console window """
|
""" Clear the console window """
|
||||||
if platform.system() == "Windows":
|
if platform.system() == "Windows":
|
||||||
@ -67,6 +69,20 @@ def sanitize_data(value):
|
|||||||
return value.replace("|", "-")
|
return value.replace("|", "-")
|
||||||
|
|
||||||
|
|
||||||
|
def split_input(selection):
|
||||||
|
""" Returns a list of inputted strings """
|
||||||
|
inputs = []
|
||||||
|
if "-" in selection:
|
||||||
|
for number in range(int(selection.split("-")[0]), int(selection.split("-")[1]) + 1):
|
||||||
|
inputs.append(number)
|
||||||
|
return inputs
|
||||||
|
else:
|
||||||
|
selections = selection.split(",")
|
||||||
|
for i in selections:
|
||||||
|
inputs.append(i.strip())
|
||||||
|
return inputs
|
||||||
|
|
||||||
|
|
||||||
def splash():
|
def splash():
|
||||||
""" Displays splash screen """
|
""" Displays splash screen """
|
||||||
print("=================================\n"
|
print("=================================\n"
|
||||||
@ -366,22 +382,25 @@ def search(search_term):
|
|||||||
if len(tracks) + len(albums) + len(playlists) == 0:
|
if len(tracks) + len(albums) + len(playlists) == 0:
|
||||||
print("NO RESULTS FOUND - EXITING...")
|
print("NO RESULTS FOUND - EXITING...")
|
||||||
else:
|
else:
|
||||||
position = int(input("SELECT ITEM BY ID: "))
|
selection = str(input("SELECT ITEM(S) BY ID: "))
|
||||||
|
inputs = split_input(selection)
|
||||||
if position <= total_tracks:
|
for pos in inputs:
|
||||||
track_id = tracks[position - 1]["id"]
|
position = int(pos)
|
||||||
download_track(track_id)
|
if position <= total_tracks:
|
||||||
elif position <= total_albums + total_tracks:
|
track_id = tracks[position - 1]["id"]
|
||||||
download_album(albums[position - total_tracks - 1]["id"])
|
download_track(track_id)
|
||||||
else:
|
elif position <= total_albums + total_tracks:
|
||||||
playlist_choice = playlists[position -
|
download_album(albums[position - total_tracks - 1]["id"])
|
||||||
total_tracks - total_albums - 1]
|
else:
|
||||||
playlist_songs = get_playlist_songs(token, playlist_choice['id'])
|
playlist_choice = playlists[position -
|
||||||
for song in playlist_songs:
|
total_tracks - total_albums - 1]
|
||||||
if song['track']['id'] is not None:
|
playlist_songs = get_playlist_songs(
|
||||||
download_track(song['track']['id'], sanitize_data(
|
token, playlist_choice['id'])
|
||||||
playlist_choice['name'].strip()) + "/")
|
for song in playlist_songs:
|
||||||
print("\n")
|
if song['track']['id'] is not None:
|
||||||
|
download_track(song['track']['id'], sanitize_data(
|
||||||
|
playlist_choice['name'].strip()) + "/")
|
||||||
|
print("\n")
|
||||||
|
|
||||||
|
|
||||||
def get_song_info(song_id):
|
def get_song_info(song_id):
|
||||||
@ -600,7 +619,8 @@ def download_track(track_id_str: str, extra_paths=""):
|
|||||||
unit_divisor=1024
|
unit_divisor=1024
|
||||||
) as bar:
|
) as bar:
|
||||||
for _ in range(int(total_size / CHUNK_SIZE) + 1):
|
for _ in range(int(total_size / CHUNK_SIZE) + 1):
|
||||||
bar.update(file.write(stream.input_stream.stream().read(CHUNK_SIZE)))
|
bar.update(file.write(
|
||||||
|
stream.input_stream.stream().read(CHUNK_SIZE)))
|
||||||
|
|
||||||
if not RAW_AUDIO_AS_IS:
|
if not RAW_AUDIO_AS_IS:
|
||||||
convert_audio_format(filename)
|
convert_audio_format(filename)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user