import json, requests
from secrets import spotify_user_id, radio_id, sunny_id
from refresh import Refresh

class Cleaner:
    def __init__(self):
        self.spotify_user_id = spotify_user_id
        self.radio_id = radio_id
        self.sunny_id = sunny_id
        self.tracks = ''
        self.spotify_token = ''

    def get_played_tracks(self):
        print('[03] Last 5 Recently Played tracks, according to Spotify:')
        tk = 51
        ## print('Get last 50 Recently Played tracks.')
        query = 'https://api.spotify.com/v1/me/player/recently-played'
        response = requests.get(query,headers={'Content-Type':'application/json','Authorization':'Bearer {}'.format(self.spotify_token)},params={'limit':50})
        response_json = response.json()

        for i in response_json['items']:
            self.tracks += i['track']['uri'] + ','
            tk = tk - 1
            if tk > 45:
                print(str(tk) + '. ' + i['track']['name'])
        self.tracks = self.tracks[:-1]
        self.remove_tracks_from_radio()

    def remove_tracks_from_radio(self):
        print('Recently Played removed from "RADIO" playlists.')
        print('')
        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.radio_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}))

        query = 'https://api.spotify.com/v1/playlists/{}/tracks'.format(self.sunny_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 start(self):
        refreshCaller = Refresh()
        self.spotify_token = refreshCaller.refresh()
        self.get_played_tracks()
    
a = Cleaner()
a.start()