oulah qu'ai-je fait

This commit is contained in:
piair
2023-08-22 11:21:42 +02:00
parent e896d4b949
commit adbb33aa0c
3 changed files with 50 additions and 46 deletions

View File

@ -1,70 +1,63 @@
import mysql.connector
import sqlite3
#Create a new row, for the account [compte] whith [points] points
#SQLITE
def add_row(compte, points, mycursor, mydb):
sql = "INSERT INTO daily (compte, points, date) VALUES (%s, %s, current_date())"
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]
#SQLITE
def update_row(compte, points, mycursor, mydb):
sql = f"UPDATE daily SET points = {points} WHERE compte = '{compte}' AND date = current_date() ;"
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):
sql = f"UPDATE comptes SET last_pts = {points} WHERE compte = '{compte}';"
mycursor.execute(sql)
mydb.commit()
#printf(mycursor.rowcount, "record(s) updated")
def get_row(compte, points, mycursor, same_points = True): #return if there is a line with the same ammount of point or with the same name as well as the same day
# 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 = current_date() ;")
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 = current_date() ;")
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, sql_host,sql_usr,sql_pwd,sql_database, save_if_fail=True):
def add_to_database(compte, points, save_if_fail=True):
if points is None:
pass
else:
try:
mydb = mysql.connector.connect(
host=sql_host,
user=sql_usr,
password=sql_pwd,
database = sql_database
)
mycursor = mydb.cursor()
mydb = sqlite3.connect("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()
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()
except BaseException as e:
if save_if_fail:
print("\nLes points n'ont pas pu être ajoutés, enregistrement dans le fichier 'points.csv'\n")
with open("points.csv", "a") as file:
file.write(f"{compte},{points}\n")
raise e