add dashboard

This commit is contained in:
Tykayn 2025-08-30 18:20:50 +02:00 committed by tykayn
parent 3a7a3849ae
commit ef801609cb
6 changed files with 822 additions and 1 deletions

View file

@ -3,6 +3,7 @@
# colonnes du csv: date; mots; intrigues; personnages; personnages_mots;
import csv
import os
from datetime import date, timedelta, datetime
def mise_a_jour_suivi(fichier_csv, fichier_livre, fichier_personnages):
@ -23,6 +24,32 @@ def mise_a_jour_suivi(fichier_csv, fichier_livre, fichier_personnages):
intrigues = 5
# Mettre à jour le fichier de suivi
# Vérifier si le fichier existe et s'il commence par un commentaire
file_exists = os.path.exists(fichier_csv)
needs_comment = False
if not file_exists:
needs_comment = True
else:
with open(fichier_csv, 'r') as f:
first_line = f.readline().strip()
if not first_line.startswith('#'):
needs_comment = True
if needs_comment:
# Sauvegarder le contenu existant si le fichier existe
content = ""
if file_exists:
with open(fichier_csv, 'r') as f:
content = f.read()
# Réécrire le fichier avec un commentaire en tête
with open(fichier_csv, 'w', newline='') as f:
f.write('# Ce fichier est un CSV et ne doit pas être exécuté directement avec Python.\n')
if content:
f.write(content)
# Ajouter la nouvelle ligne
with open(fichier_csv, 'a', newline='') as csvfile:
writer = csv.writer(csvfile, delimiter=';')
now = datetime.now()
@ -38,7 +65,16 @@ def analyse_csv(fichier_csv):
with open(fichier_csv, 'r') as csvfile:
reader = csv.reader(csvfile, delimiter=';')
donnees = list(reader)
donnees = []
for row in reader:
# Ignorer les lignes de commentaire qui commencent par #
if row and not row[0].startswith('#'):
donnees.append(row)
# Si aucune donnée valide n'a été trouvée, retourner
if not donnees:
print("Aucune donnée valide trouvée dans le fichier CSV.")
return
# Récupérer les dates et les nombres de mots
dates = [datetime.fromisoformat(donnee[0]).date() for donnee in donnees]