'''
Created on Apr 2, 2018

@author: ola
'''
import sys
import spotipy
import spotipy.util
from spotipy.oauth2 import SpotifyClientCredentials
import Credentials

def show_tracks(tracks):
    for i, item in enumerate(tracks['items']):
        track = item['track']
        print("%d %32.32s %s" % 
              (i, track['artists'][0]['name'],track['name']))

def get_validated_spotipy():
    manager = SpotifyClientCredentials(client_id=Credentials.ID, client_secret=Credentials.SECRET)
    sp = spotipy.Spotify(client_credentials_manager=manager)
    return sp

def get_playlists():
    sp = get_validated_spotipy()
    playlists = sp.user_playlists(Credentials.USERNAME)
    for playlist in playlists['items']:
        if playlist['owner']['id'] == Credentials.USERNAME:
            print()
            print(playlist['name'])
     
            print('total tracks', playlist['tracks']['total'])
            results = sp.user_playlist(Credentials.USERNAME, 
                                       playlist['id'],
                                       fields="tracks,next")
            tracks = results['tracks']
            show_tracks(tracks)
            while tracks['next']:
                tracks = sp.next(tracks)
                show_tracks(tracks)

    
if __name__ == '__main__':
    get_playlists()