import json, requests, random 
from secrets import spotify_user_id, mixer_id
from refresh import Refresh

class ShuffleTracks:
    def __init__(self):
        self.user_id = spotify_user_id
        self.spotify_token = ''
        self.mixer_id = mixer_id
        self.tracks = ''

    def find_songs(self):
        x = 0
        query = 'https://api.spotify.com/v1/playlists/{}/tracks'.format(self.mixer_id)
        response = requests.get(query,headers={'Content-Type': 'application/json','Authorization': 'Bearer {}'.format(self.spotify_token)})
        response_json = response.json()

        track_uris = []
        for i in response_json['items']:
            track_uris.append(i['track']['uri'])
            x = x + 1

        print('[06] Shuffle ' + str(x) + ' MIXER tracks.')
        random.shuffle(track_uris)
        self.tracks = track_uris
        self.replace_songs()

    def replace_songs(self):
        song_string = ','.join(self.tracks)
        query = 'https://api.spotify.com/v1/playlists/{}/tracks'.format(self.mixer_id)
        response = requests.put(query,headers={'Content-Type':'application/json','Authorization':'Bearer {}'.format(self.spotify_token)},params={'uris':song_string})
        ## print(response)

        if response.status_code != 201:
            print('   SHUFFLE FAIL !!')

    def call_refresh(self):
        refreshCaller = Refresh()
        self.spotify_token = refreshCaller.refresh()
        self.find_songs()

a = ShuffleTracks()
a.call_refresh()
