from secrets import refresh_token, base_64
from typing import Counter
from datetime import datetime
import requests
import json

#DO NOT TOUCH THIS CODE.......IT WONT WORK IF YOU DO!!!!
amount = 0
class Refresh:

    def __init__(self):
        self.refresh_token = refresh_token
        self.base_64 = base_64

   # def refresh(self):    # NOTE Old Style Refresh
   #     query = "https://accounts.spotify.com/api/token"
   #     response = requests.post(query, data={"grant_type": "refresh_token", "refresh_token": refresh_token}, headers={"Authorization": "Basic " + base_64})
   #     response_json = response.json()
   #     return response_json["access_token"]


    def refresh(self):     # NOTE Euans 2nd Fix
        global amount
        count = amount + 1
        if count == 100:
            print("[!] Attempting refresh...")
            now = datetime.now()    
            date_time = now.strftime("%d/%m/%y at %H:%M:%S")
            File_object = open(r"Refresh-data (DO NOT DELETE!).txt","a")
            File_object.writelines([date_time + " - 100 Refreshes complete" + "\n"])
            File_object.close()
            count = 0
            print("100 Refreshes complete")
        query = "https://accounts.spotify.com/api/token"
        response = requests.post(query, data={"grant_type": "refresh_token", "refresh_token": refresh_token}, headers={"Authorization": "Basic " + base_64})
        #UPDATES ADDED HERE
        #1.) Check for response.status_code == 200
        #Only in this circumstance should we try to return the access token
        #in all other cases, return -1

        if response.status_code == 200:
            response_json = response.json()
            return response_json["access_token"]
        else:
            #In case of 503 error, etc
            return -1

