import json
import requests
from secrets import spotify_user_id, mixer_id
from refresh import Refresh
import random

class ShuffleTracks:
    def __init__(self):
        self.user_id = spotify_user_id
        self.spotify_token = ""
        self.playlist_id = mixer_id
        self.tracks = ""

    def find_songs(self):
        x = 0
        query = "https://api.spotify.com/v1/playlists/{}/tracks".format(self.playlist_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("4. 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.playlist_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()
