import json, time, requests
from secrets import spotify_user_id, skiley_id, mixer_id
from refresh import Refresh

class MoveSkileyTracks:
    def __init__(self):
        self.user_id = spotify_user_id
        self.mixer_id = mixer_id 
        self.skiley_id = skiley_id
        self.spotify_token = ''
        self.tracks = ''

    def get_tracks_from_skiley(self):
        params={'limit':'1'}
        print('[08] Move 1 recommended track to MIXER.')
        query = 'https://api.spotify.com/v1/playlists/{}/tracks'.format(self.skiley_id)
        response = requests.request('get', url=query, headers={'Content-type': 'application/json','Authorization':'Bearer {}'.format(self.spotify_token)},params=params)
        response_json = response.json()

        for i in response_json['items']:
            self.tracks += i['track']['uri'] + ','
            print(i['track']['name'])
            print('')
        self.tracks = self.tracks[:-1]
        self.add_tracks_to_mixer()
   
    def add_tracks_to_mixer(self):
        query = 'https://api.spotify.com/v1/playlists/{}/tracks?uris={}'.format(self.mixer_id, self.tracks)
        response = requests.request('post', url=query, headers={'Content-type': 'application/json','Authorization':'Bearer {}'.format(self.spotify_token)})
        self.remove_tracks_from_skiley()

    def remove_tracks_from_skiley(self):
        tracks_to_delete = []
        tmp_tracks = self.tracks.split(',')
        for i in tmp_tracks:
            tracks_to_delete.append({'uri':i})

        query = 'https://api.spotify.com/v1/playlists/{}/tracks'.format(self.skiley_id)
        response = requests.request('delete', url=query, headers={'Content-type': 'application/json','Authorization':'Bearer {}'.format(self.spotify_token)}, data=json.dumps({'tracks': tracks_to_delete}))

    def call_refresh(self):
        refreshCaller = Refresh()
        self.spotify_token = refreshCaller.refresh()
        self.get_tracks_from_skiley()

a = MoveSkileyTracks()
a.call_refresh()
