From 272d14d623bc715ca1713f2d8427e611d139ef79 Mon Sep 17 00:00:00 2001 From: Mouigni Date: Wed, 19 Aug 2026 13:42:31 +0200 Subject: [PATCH] Maj --- api/main.py | 8 +------- database/database.py | 1 - database/models.py | 5 ++--- 3 files changed, 3 insertions(+), 11 deletions(-) diff --git a/api/main.py b/api/main.py index 8915725..9603c9a 100644 --- a/api/main.py +++ b/api/main.py @@ -206,10 +206,7 @@ def admin_delete_document(doc_id: int, token: str): db.commit() db.close() return {"message": "Document supprimé"} -# ── Scrapers ───────────────────────────────────────────────── -# Les scrapers tournent aussi via le cron hôte (scripts/regwatch-scrape.sh, -# dimanche 3h). Ces endpoints permettent de les déclencher à la demande depuis -# la page admin et de consulter l'historique des exécutions. + SCRAPER_SOURCES = ("CIR", "SCCS") PARIS = ZoneInfo("Europe/Paris") @@ -226,9 +223,6 @@ def _serialize_run(run: ScraperRun) -> dict: } def _execute_scraper(run_id: int, source: str) -> None: - """Exécuté en tâche de fond : lance le scraper puis clôt la ligne de journal.""" - # Import tardif : ollama/pdfplumber/bs4 sont lourds, inutile de les charger - # au démarrage de l'API alors qu'ils ne servent qu'ici. from scrapers.cir_scraper import scrape_cir from scrapers.sccs_scraper import scrape_sccs diff --git a/database/database.py b/database/database.py index 020ad33..1a4642a 100644 --- a/database/database.py +++ b/database/database.py @@ -5,7 +5,6 @@ import os DB_PATH = os.path.join(os.path.dirname(os.path.dirname(__file__)), "regwatch.db") DATABASE_URL = os.getenv("DATABASE_URL", f"sqlite:///{DB_PATH}") -# check_same_thread est propre à SQLite : psycopg2 le rejette. CONNECT_ARGS = {"check_same_thread": False} if DATABASE_URL.startswith("sqlite") else {} engine = create_engine( diff --git a/database/models.py b/database/models.py index 4d7dad8..1d89bc3 100644 --- a/database/models.py +++ b/database/models.py @@ -20,11 +20,10 @@ class Document(Base): pdf_url = Column(String, unique=True) class ScraperRun(Base): - """Une exécution de scraper, déclenchée depuis la page admin ou par le cron.""" __tablename__ = "scraper_runs" id = Column(Integer, primary_key=True, index=True) - source = Column(String, index=True) # CIR | SCCS - status = Column(String, default="pending") # pending | running | success | error + source = Column(String, index=True) + status = Column(String, default="pending") started_at = Column(DateTime(timezone=True)) finished_at = Column(DateTime(timezone=True), nullable=True) documents_added = Column(Integer, default=0)