diff --git a/README.md b/README.md index 0114cf43..fb4ffbae 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@

-[Discord Server](https://discord.gg/skVNQKtyFq) - [Matrix Server](https://matrix.to/#/#zspotify:matrix.org) - [Gitea Mirror](https://git.robinsmediateam.dev/Footsiefat/zspotify) +[Discord Server](https://discord.gg/skVNQKtyFq) - [Matrix Server](https://matrix.to/#/#zspotify:matrix.org) - [Gitea Mirror](https://git.robinsmediateam.dev/Footsiefat/zspotify) - [Main Site](https://footsiefat.github.io/) ``` Requirements: diff --git a/zspotify.py b/zspotify.py index 038497ba..2200cf9a 100755 --- a/zspotify.py +++ b/zspotify.py @@ -69,6 +69,20 @@ def sanitize_data(value): 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(): """ Displays splash screen """ print("=================================\n" @@ -373,22 +387,25 @@ def search(search_term): if len(tracks) + len(albums) + len(playlists) == 0: print("NO RESULTS FOUND - EXITING...") else: - position = int(input("SELECT ITEM BY ID: ")) - - if position <= total_tracks: - track_id = tracks[position - 1]["id"] - download_track(track_id) - elif position <= total_albums + total_tracks: - download_album(albums[position - total_tracks - 1]["id"]) - else: - playlist_choice = playlists[position - - total_tracks - total_albums - 1] - playlist_songs = get_playlist_songs(token, playlist_choice['id']) - for song in playlist_songs: - if song['track']['id'] is not None: - download_track(song['track']['id'], sanitize_data( - playlist_choice['name'].strip()) + "/") - print("\n") + selection = str(input("SELECT ITEM(S) BY ID: ")) + inputs = split_input(selection) + for pos in inputs: + position = int(pos) + if position <= total_tracks: + track_id = tracks[position - 1]["id"] + download_track(track_id) + elif position <= total_albums + total_tracks: + download_album(albums[position - total_tracks - 1]["id"]) + else: + playlist_choice = playlists[position - + total_tracks - total_albums - 1] + playlist_songs = get_playlist_songs( + token, playlist_choice['id']) + for song in playlist_songs: + 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):