"""Logic for Spotify.""" import spotipy from spotipy.oauth2 import SpotifyClientCredentials def remove_submitted_artist(input_track, track_list): """Check for submitted artist and remove from output track list.""" sp = spotipy.Spotify(client_credentials_manager=SpotifyClientCredentials()) print('length of adjusted list before submitted artist removed: \ {}'.format(len(track_list))) input_track = sp.track(input_track) input_track_artist = input_track['album']['artists'][0]['uri'] new_track_list = [] for index, item in enumerate(track_list): output_track = sp.track(item['itemId']) output_track_artist = output_track['album']['artists'][0]['uri'] if output_track_artist != input_track_artist: new_track_list.append(track_list[index]) print('length of adjusted list after submitted artist removed: \ {}'.format(len(new_track_list))) return new_track_list def remove_duplicate_artists(track_list): """Check for duplicate artists in track list and remove them.""" sp = spotipy.Spotify(client_credentials_manager=SpotifyClientCredentials()) output_artists = [] print('length of adjusted list before duplicate artists removed: \ {}'.format(len(track_list))) new_track_list = [] for index, item in enumerate(track_list): output_track = sp.track(item['itemId']) output_track_artist = output_track['album']['artists'][0]['uri'] print(output_track_artist) if output_track_artist not in output_artists: print('A song by this artist has already been recommended. \ Removing track: {}'.format(output_track_artist)) new_track_list.append(track_list[index]) output_artists.append(output_track_artist) print('length of adjusted list after duplicate artists removed: \ {}'.format(len(new_track_list))) return new_track_list