import sqlite3
from sqlite3 import Error

class genre1:
    def __init__(self):
        self.dbpath = 'j:\\Spotty\secrets_and_database'
        #self.database_name = "Enormous Feed"
        self.database_name = "Endless Feed2"

    def get_the_artists(self):
        self.database = self.dbpath + r"\\" + self.database_name + ".db"
        self.check_artist_genre_table()
        self.populate_the_artist_field()

    def check_artist_genre_table(self):
        conn = self.create_connection(self.database)
        with conn:
            cur = conn.cursor()
            try:
                cur.execute("CREATE TABLE IF NOT EXISTS Artist_Genre (ARTIST_NAME blob PRIMARY KEY, ARTIST_URI text, SPOT_ARTIST_NAME text, TRACK_URI text, TRACK_NAME text, DISCOG_GENRE text, DISCOG_STYLE text, VERIFIED text);")
                conn.commit()
            except Error as e5:
                print("check_artist_genre_table")
                print(e5)
                return
            
    def populate_the_artist_field(self):
        conn = self.create_connection(self.database)
        with conn:
            cur = conn.cursor()
            try:
                cur.execute("SELECT ARTIST_NAME FROM Track_List")
                rows = cur.fetchall()
                self.trw = len(rows)
                rw = 1
                for row in rows:
                    print("Adding Data to Artists! Working on Item " +
                          str(rw) + " of " + str(self.trw), end='\r')
                    artist = (row[0], 0, 0, 0, 0, 0, 0, 0)
                    sql2 = ''' INSERT OR IGNORE INTO Artist_Genre (ARTIST_NAME,ARTIST_URI,SPOT_ARTIST_NAME,TRACK_URI,TRACK_NAME,DISCOG_GENRE,DISCOG_STYLE,VERIFIED) VALUES(?,?,?,?,?,?,?,?) '''
                    cur = conn.cursor()
                    cur.execute(sql2, artist)
                    conn.commit()
                    rw+=1
                    continue
                print()
            except Error as e5:
                print("check_artist_genre_table")
                print(e5)
                return

    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

a = genre1()
a.get_the_artists()