Fix: déduplication des événements pour éviter les doublons
Ajout d'une clé (date, start_time, titre, note) pour éviter qu'un même événement soit ajouté plusieurs fois (PDFs qui se chevauchent ou lignes dupliquées par pdfplumber sur tables multi-pages). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
+8
-2
@@ -514,12 +514,18 @@ def main():
|
|||||||
|
|
||||||
# 1. Extraire tous les événements des PDFs
|
# 1. Extraire tous les événements des PDFs
|
||||||
all_events = []
|
all_events = []
|
||||||
|
seen = set()
|
||||||
pdf_files = sorted(PDF_DIR.glob("*.pdf"))
|
pdf_files = sorted(PDF_DIR.glob("*.pdf"))
|
||||||
print(f"PDFs trouvés : {len(pdf_files)}")
|
print(f"PDFs trouvés : {len(pdf_files)}")
|
||||||
for pdf_path in pdf_files:
|
for pdf_path in pdf_files:
|
||||||
events = extract_events_from_pdf(pdf_path)
|
events = extract_events_from_pdf(pdf_path)
|
||||||
print(f" {pdf_path.name}: {len(events)} événements")
|
before = len(all_events)
|
||||||
all_events.extend(events)
|
for evt in events:
|
||||||
|
key = (evt['date'], evt['start_time'], evt['titre'], evt['note'])
|
||||||
|
if key not in seen:
|
||||||
|
seen.add(key)
|
||||||
|
all_events.append(evt)
|
||||||
|
print(f" {pdf_path.name}: {len(events)} extraits, {len(all_events)-before} ajoutés")
|
||||||
print(f"Total : {len(all_events)} événements")
|
print(f"Total : {len(all_events)} événements")
|
||||||
|
|
||||||
# 2. Scraper le site web (avec cache)
|
# 2. Scraper le site web (avec cache)
|
||||||
|
|||||||
+6
-1
@@ -431,10 +431,15 @@ def process_pdfs(pdf_paths: list, config: dict, data_dir: Path,
|
|||||||
if log:
|
if log:
|
||||||
log(f"Extraction de {len(pdf_paths)} PDF(s)...")
|
log(f"Extraction de {len(pdf_paths)} PDF(s)...")
|
||||||
all_events = []
|
all_events = []
|
||||||
|
seen = set()
|
||||||
for i, pdf_path in enumerate(pdf_paths):
|
for i, pdf_path in enumerate(pdf_paths):
|
||||||
if log:
|
if log:
|
||||||
log(f"Extraction {i+1}/{len(pdf_paths)} : {pdf_path.name}")
|
log(f"Extraction {i+1}/{len(pdf_paths)} : {pdf_path.name}")
|
||||||
all_events.extend(extract_events_from_pdf(pdf_path))
|
for evt in extract_events_from_pdf(pdf_path):
|
||||||
|
key = (evt['date'], evt['start_time'], evt['titre'], evt['note'])
|
||||||
|
if key not in seen:
|
||||||
|
seen.add(key)
|
||||||
|
all_events.append(evt)
|
||||||
if log:
|
if log:
|
||||||
log(f"{len(all_events)} événements extraits au total")
|
log(f"{len(all_events)} événements extraits au total")
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user