mirror of
				https://github.com/THIS-IS-NOT-A-BACKUP/zspotify.git
				synced 2025-11-04 05:20:34 +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