""" trilium_logger.py — Intégration pipeline Sliding Automation À appeler depuis facilitator.py pour logger chaque génération automatiquement. Usage depuis facilitator.py : from trilium_logger import log_session log_session("Mon titre", nb_slides=12, yaml_path="output/x.yaml", pptx_path="output/x.pptx", layouts=["cover_split", "big_stat"]) """ import os from datetime import datetime from dotenv import load_dotenv load_dotenv() # Import relatif — suppose que trilium_logger.py est dans le même dossier # que trilium_api.py, ou que le chemin est dans PYTHONPATH import sys sys.path.insert(0, os.path.dirname(__file__)) from trilium_api import create_note, set_label, find_note_by_title TRILIUM_URL = os.getenv("TRILIUM_URL", "http://localhost:4292") DEFAULT_PROJ = os.getenv("DEFAULT_PROJECT", "SlidingAutomation") # ID du dossier Sessions dans Sliding Pipeline (à renseigner après init) # Récupérable via : python trilium_init.py --show-ids SESSIONS_PARENT_ID = os.getenv("TRILIUM_SESSIONS_ID", "") def log_session(titre: str, nb_slides: int, yaml_path: str, pptx_path: str, layouts: list = None, projet: str = None): """ Crée une note de session dans Trilium. Appelé automatiquement par facilitator.py en fin de génération. """ if not SESSIONS_PARENT_ID: print(" ⚠ TRILIUM_SESSIONS_ID non défini dans .env — log ignoré") return projet = projet or DEFAULT_PROJ date = datetime.now().strftime("%Y-%m-%d %H:%M") layouts_str = ", ".join(layouts) if layouts else "non renseignés" content = f"""
| Titre | {titre} |
| Slides | {nb_slides} |
| YAML | {yaml_path} |
| PPTX | {pptx_path} |
| Layouts | {layouts_str} |
| Date | {date} |