"""Caviardage du bandeau de pied de page du memoire FSEE 2011.

Le pied de page repete sur chaque page l'adresse e-mail et le numero de
telephone personnels de l'auteur. On les supprime reellement du flux de
contenu (redaction PyMuPDF), pas par un simple rectangle superpose : un
rectangle laisserait le texte extractible par copier-coller.
"""
import re
import sys
import fitz

SOURCE, CIBLE = sys.argv[1], sys.argv[2]

# Ce qui doit disparaitre : e-mail et telephone, sous toutes leurs formes.
MOTIFS = [
    re.compile(r"Email\s*:\s*\S+@\S+", re.I),
    re.compile(r"alexandre@baumberger\.me", re.I),
    re.compile(r"Tel\s*:\s*[\d.\s]{8,}", re.I),
    re.compile(r"06[.\s]?47[.\s]?353[.\s]?370"),
]

doc = fitz.open(SOURCE)
zones = 0

for page in doc:
    texte = page.get_text()
    for motif in MOTIFS:
        for trouve in set(motif.findall(texte)):
            for rect in page.search_for(trouve.strip()):
                page.add_redact_annot(rect, fill=(1, 1, 1))
                zones += 1
    page.apply_redactions()

doc.save(CIBLE, garbage=4, deflate=True, clean=True)
doc.close()
print(f"{zones} zones caviardees")

# Usage :
#   python3 -m venv .venv && .venv/bin/pip install pymupdf
#   .venv/bin/python tools/caviarder-pdf.py source.pdf cible.pdf
#
# Verification apres coup, indispensable :
#   pdftotext cible.pdf - | grep -ci "motif-a-supprimer"   -> doit renvoyer 0
