from refresh import Refresh
from endless_playlist_secrets import master_id, spotify_user_id
from sqlite3 import Error
from alive_progress import alive_bar
from datetime import datetime
import shutil
import sys
import os
import json
import requests
import time
import sqlite3
sys.path.insert(1, 'j:\\Spotty\secrets_and_database')






refreshCaller = Refresh()
job_done = False

class edc:
    def __init__(self):
        self.spotify_token = ""
        self.here_i_am = os.path.dirname(os.path.abspath(__file__))
        self.dbpath = 'j:\\Spotty\secrets_and_database'
        self.track_uri_list = []
        self.album_name_list = []
        self.release_date_list = []
        self.database_name = "Missing Enormous Feed"

    def call_refresh(self):         # NOTE  Euan's Mk.2
        global refreshCaller
        while True:
            self.spotify_token = refreshCaller.refresh()
            if self.spotify_token == -1:
                print(
                    "==============================\n[!] Error refreshing token, retrying in 30 Seconds\n==============================")
                time.sleep(30)
            else:
                break

    def check_the_database(self):
        self.get_record_count_from_database()


    def create_connection(self, db_file):  # NOTE Create a database connection
        conn = None
        try:
            conn = sqlite3.connect(db_file)
            return conn
        except Error as e1:
            print("Create_Connection")
            print(e1)
        return conn
    
    def get_record_count_from_database(self):
        conn = self.create_connection(self.database)
        with conn:
            cur = conn.cursor()
            try:
                cur.execute("SELECT COUNT (*) from Track_List")
                self.total_records = cur.fetchone()
                print(self.total_records)
            except Error as e5:
                print("Clear_db_deleted_tracks")
                print(e5)
                return
            

a = edc()
a.call_refresh()
a.check_the_database()
