import sqlite3 #Create a new row, for the account [compte] whith [points] points def add_row(compte, points, mycursor, mydb): sql = "INSERT INTO daily (compte, points, date) VALUES (?, ?, date())" val = (compte, points) mycursor.execute(sql, val) mydb.commit() #printf(mycursor.rowcount, "record created.") #update the ammount of points for the account [compte] def update_row(compte, points, mycursor, mydb): sql = f"UPDATE daily SET points = {points} WHERE compte = '{compte}' AND date = date() ;" mycursor.execute(sql) mydb.commit() #printf(mycursor.rowcount, "record(s) updated") # update the value of last_pts for the table comptes def update_last(compte, points, mycursor, mydb): sql1 = f"UPDATE comptes SET last_pts = {points} WHERE compte = '{compte}';" sql2 = f"select * from comptes where compte = '{compte}'" sql3 = "INSERT INTO comptes (compte, last_pts,banned) VALUES ('{compte}', {points}, 0)" cmd = mycursor.execute(sql2) if len(list(cmd)) == 0: mycursor.execute(sql3) else : mycursor.execute(sql1) mydb.commit() #printf(mycursor.rowcount, "record(s) updated") # if return if there already is a line in the database for the account [compte]. if same_point is enabled, the line must also have the same number of points # SQLITE def get_row(compte, points, mycursor, same_points = True): if same_points : mycursor.execute(f"SELECT * FROM daily WHERE points = {points} AND compte = '{compte}' AND date = date() ;") else : mycursor.execute(f"SELECT * FROM daily WHERE compte = '{compte}' AND date = date() ;") myresult = mycursor.fetchall() return(len(myresult) == 1) def add_to_database(compte, points, save_if_fail=True): if points is None: pass else: mydb = sqlite3.connect("/app/MsRewards-Reborn/MsRewards.db") mycursor = mydb.cursor() if get_row(compte, points,mycursor, True): #check if the row exist with the same ammount of points and do nothind if it does #printf("les points sont deja bon") #return(0) pass elif get_row(compte, points,mycursor, False) : #check if the row exist, but without the same ammount of points and update the point account then update_row(compte, points,mycursor,mydb) #printf("row updated") #return(1) else : # if the row don't exist, create it with the good ammount of points add_row(compte, points,mycursor,mydb) #return(2) #printf("row added") if int(points) > 10 : update_last(compte, points, mycursor, mydb) mycursor.close() mydb.close()