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.
48 lines
1.5 KiB
Markdown
48 lines
1.5 KiB
Markdown
# 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
|
|
```
|