feat: init epub audit tool (distroless/python)
All checks were successful
🚀 Docker Build and Push / build-and-push (push) Successful in 58s

- Implemented 'audit_epubs.py' using standard libraries (zipfile, xml.etree) for high performance.
- Created optimized Dockerfile based on 'gcr.io/distroless/python3-debian12' for minimal security attack surface.
- Added strict metadata validation rules.
- Included CI/CD workflow for Gitea Actions.
- Added comprehensive README.md.
This commit is contained in:
2026-01-07 23:31:59 +00:00
commit c5f358e07d
4 changed files with 419 additions and 0 deletions

47
README.md Normal file
View File

@@ -0,0 +1,47 @@
# Outil d'Audit de Métadonnées EPUB
Cet outil analyse récursivement un répertoire de livres numériques (`.epub`) pour détecter les métadonnées manquantes ou mal formatées, selon des critères stricts.
## Fonctionnalités
* **Léger & Rapide** : Utilise uniquement la librairie standard Python (`zipfile`, `xml.etree`). Aucune dépendance externe.
* **Conteneurisé** : Image Docker Alpine optimisée (Multi-stage build).
* **Règles de Validation Strictes** :
* **Titre** : Pas d'underscores, pas d'extensions, pas purement numérique.
* **Auteur** : Pas de virgules (Format "Nom, Prénom" interdit), pas de "Calibre", pas vide.
* **Identifiants** : Doit avoir un ISBN ou un URN valide (autre que Calibre UUID seul).
* **Éditeur** : Pas d'URL, pas générique ("Unknown").
* **Couverture** : Vérification de la présence dans le manifest et les métadonnées.
## Utilisation
### Avec Docker (Recommandé)
1. **Construire l'image** :
```bash
docker build -t epub-audit .
```
2. **Lancer l'audit** (en montant votre dossier de livres dans `/books`) :
```bash
docker run --rm -v /mnt/user/media/books/ebooks:/books epub-audit
```
### En local (Python 3)
```bash
python3 audit_epubs.py /chemin/vers/vos/livres
```
## Format de Sortie
Le script affiche une arborescence ASCII des erreurs :
```text
📚 Audit Ebook Exhaustif
📖 [Nom du fichier]
🔗 [Chemin relatif]
└ ❌ Erreur détectée...
...
✅ [X] Livres parfaits / [Y] Livres avec erreurs
```