2022-09-30 14:45:53 +02:00
import mysql . connector
def add_row ( compte , points , mycursor , mydb ) :
sql = " INSERT INTO daily (compte, points, date) VALUES ( %s , %s , current_date()) "
val = ( compte , points )
mycursor . execute ( sql , val )
mydb . commit ( )
2022-09-30 15:17:29 +02:00
#printf(mycursor.rowcount, "record created.")
2022-09-30 14:45:53 +02:00
def update_row ( compte , points , mycursor , mydb ) :
sql = f " UPDATE daily SET points = { points } WHERE compte = ' { compte } ' AND date = current_date() ; "
mycursor . execute ( sql )
mydb . commit ( )
2022-09-30 15:17:29 +02:00
#printf(mycursor.rowcount, "record(s) updated")
2022-09-30 14:45:53 +02:00
def update_last ( compte , points , mycursor , mydb ) :
sql = f " UPDATE comptes SET last_pts = { points } WHERE compte = ' { compte } ' ; "
mycursor . execute ( sql )
mydb . commit ( )
2022-09-30 15:17:29 +02:00
#printf(mycursor.rowcount, "record(s) updated")
2022-09-30 14:45:53 +02:00
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 same_points :
mycursor . execute ( f " SELECT * FROM daily WHERE points = { points } AND compte = ' { compte } ' AND date = current_date() ; " )
else :
mycursor . execute ( f " SELECT * FROM daily WHERE compte = ' { compte } ' AND date = current_date() ; " )
myresult = mycursor . fetchall ( )
return ( len ( myresult ) == 1 )
2022-11-16 18:13:36 +01:00
def add_to_database ( compte , points , sql_host , sql_usr , sql_pwd , sql_database , save_if_fail = True ) :
try :
mydb = mysql . connector . connect (
host = sql_host ,
user = sql_usr ,
password = sql_pwd ,
database = sql_database
)
mycursor = mydb . cursor ( )
2022-09-30 14:45:53 +02:00
2022-11-16 18:13:36 +01:00
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 ( " \n Les 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
2022-09-30 14:45:53 +02:00