Log impressions (JSONL) + sleep 3s entre copies multi
- _log_impression() ecrit chaque demande dans data/impressions.jsonl (timestamp, photo, copies, format, succes, event_id, detail CUPS) - Delai entre copies passe de 1s a 3s pour fiabiliser multi-copies Mitsubishi Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
import asyncio
|
||||
import base64
|
||||
import datetime
|
||||
import json
|
||||
import logging
|
||||
import os
|
||||
@@ -1494,6 +1495,29 @@ async def api_reset_usb():
|
||||
return {"succes": False, "message": str(e)}
|
||||
|
||||
|
||||
FICHIER_LOG_IMPRESSIONS = RACINE / "data" / "impressions.jsonl"
|
||||
|
||||
|
||||
def _log_impression(photo: str, copies: int, format_papier: str | None, succes: bool, detail: str):
|
||||
entry = {
|
||||
"ts": datetime.datetime.now().isoformat(),
|
||||
"photo": photo,
|
||||
"copies": copies,
|
||||
"format": format_papier,
|
||||
"succes": succes,
|
||||
"detail": detail,
|
||||
}
|
||||
config = charger_config()
|
||||
evt = config.get("evenement", {}).get("event_id", "")
|
||||
if evt:
|
||||
entry["event"] = evt
|
||||
try:
|
||||
with open(FICHIER_LOG_IMPRESSIONS, "a") as f:
|
||||
f.write(json.dumps(entry) + "\n")
|
||||
except Exception as e:
|
||||
log.warning(f"Impossible d'ecrire le log impression : {e}")
|
||||
|
||||
|
||||
@app.post("/api/imprimer")
|
||||
async def api_imprimer(donnees: dict):
|
||||
if evenement_est_termine():
|
||||
@@ -1511,12 +1535,16 @@ async def api_imprimer(donnees: dict):
|
||||
return JSONResponse({"erreur": "Photo introuvable"}, status_code=404)
|
||||
cadre_override = donnees.get("cadre")
|
||||
format_papier = donnees.get("format_papier") or None
|
||||
log.info(f"IMPRESSION demandee: photo={nom} copies={copies} format={format_papier} cadre={cadre_override}")
|
||||
try:
|
||||
resultat = imprimer(chemin, copies=copies, cadre_override=cadre_override, format_papier=format_papier)
|
||||
except Exception as e:
|
||||
log.error(f"Erreur impression inattendue : {e}")
|
||||
_log_impression(nom, copies, format_papier, False, str(e))
|
||||
return {"succes": False, "erreur": "erreur_impression", "message": f"Erreur interne : {e}"}
|
||||
if resultat.get("succes"):
|
||||
succes = resultat.get("succes", False)
|
||||
_log_impression(nom, copies, format_papier, succes, resultat.get("job", ""))
|
||||
if succes:
|
||||
distribuer_photo(chemin, imprimee=True, copies=copies, format_papier=format_papier)
|
||||
return resultat
|
||||
|
||||
|
||||
@@ -353,7 +353,7 @@ def imprimer(
|
||||
}
|
||||
|
||||
if copie < copies:
|
||||
time.sleep(1)
|
||||
time.sleep(3)
|
||||
|
||||
log.info(f"Impression terminée : {copies} copie(s), jobs={jobs}")
|
||||
return {"succes": True, "job": ", ".join(jobs)}
|
||||
|
||||
Reference in New Issue
Block a user