# from dbconn import DbClass
import mysql.connector, os, time
from mysql.connector import Error

def writedb(querry):
    try:
        conn = mysql.connector.connect(host='localhost',database='project',user='weatherCollector',password='HowestNMCT')
        if conn.is_connected() == False:
            print("not connected")
            quit()
        cursor = conn.cursor()
        cursor.execute(querry)
        conn.commit()
    except Error as e:
        print(e)
        conn.rollback()

    finally:
        conn.close()

def inlezen_bestand(bestandsNaam):
    values = []
    value = []
    try:
        fp = open(bestandsNaam)
    except FileNotFoundError as error:
        print(error)
        exit()

    lijn = fp.readline().replace("\n", "")
    while lijn != "":
        # if lijn == "tart run" or lijn == "Stop run":
        #     lijn = fp.readline().replace("\n", "")

        # If multiple arrays make sure the first value of the new one isn't the same as the last one of the prev
        if len(values) != 0 and len(value) == 0:
            while values[len(values)-1][4] == lijn[1:]:
                lijn = fp.readline().replace("\n", "")


        if len(value) == 0:
            value.append(lijn[1:])
        else:
            FoundItem = False
            for item in value:
                if lijn[1:] == item:
                    FoundItem = True
            if FoundItem == False:
                value.append(lijn[1:])

        #5 sensors is 5 values
        if len(value) == 5:
            values.append(value)
            value = []
        lijn = fp.readline().replace("\n", "")
    fp.close()
    return values

def noStrings(list):
    for values in list:
        values[0] = str(int(values[0])/100.0)
        values[2] = str(int(values[2])/100.0)
    return list

def insert(list):
    for values in list:
        writedb("INSERT INTO `collector`(`Temperature`, `Humidity`, `Air-pressure`, `Air-quality`, `Rain-gauge`) VALUES('" + values[0] + "','" + values[1] + "','" + values[2] + "','" + values[3] + "','" + values[4] + "')")
        time.sleep(1)

def print_list(list):
    print(list)
    # for value in list:
        # print(value)

def project():
    list = inlezen_bestand("TestFile.txt")
    list = noStrings(list)
    insert(list)
    os.remove("TestFile.txt")

while True:
    try:
        project()
        time.sleep(60)
    except KeyboardInterrupt:
        pass