232 lines
6.6 KiB
Markdown
232 lines
6.6 KiB
Markdown
# Script de Correction d'Encodage pour NZBGet
|
|
|
|
## Description
|
|
|
|
Ce script de post-processing pour NZBGet corrige automatiquement les problèmes d'encodage dans les noms de fichiers. Il est particulièrement utile pour corriger les caractères français mal encodés (UTF-8 interprété comme ISO-8859-1).
|
|
|
|
### Problèmes corrigés
|
|
|
|
Le script détecte et corrige automatiquement :
|
|
- `é` → `é`
|
|
- `è` → `è`
|
|
- `ê` → `ê`
|
|
- `Ã ` → `à` (avec espace normal)
|
|
- `Ã\xa0` → `à` (avec espace insécable - cas le plus fréquent)
|
|
- `â` → `â`
|
|
- `ç` → `ç`
|
|
- `ô` → `ô`
|
|
- Et tous les autres caractères accentués français
|
|
|
|
**Note importante :** Le caractère "à" peut être encodé de deux façons différentes selon les systèmes. Le script gère automatiquement les deux cas.
|
|
|
|
**Exemple :**
|
|
- `19-La grâce.flac` → `19-La grâce.flac`
|
|
- `06-La fièvre dans le sang.flac` → `06-La fièvre dans le sang.flac`
|
|
- `02-Géant.flac` → `02-Géant.flac`
|
|
|
|
## Installation
|
|
|
|
### 1. Prérequis
|
|
|
|
- NZBGet installé et fonctionnel
|
|
- Python 3.x installé sur votre système
|
|
|
|
### 2. Installation du script
|
|
|
|
1. **Téléchargez** le fichier `FixEncoding.py`
|
|
|
|
2. **Copiez le script** dans le répertoire des scripts de NZBGet :
|
|
- **Linux/macOS** : `/path/to/nzbget/scripts/`
|
|
- **Windows** : `C:\ProgramData\NZBGet\scripts\`
|
|
- **Docker** : montez le script dans `/scripts/`
|
|
|
|
3. **Rendez le script exécutable** (Linux/macOS/Docker uniquement) :
|
|
```bash
|
|
chmod +x FixEncoding.py
|
|
```
|
|
|
|
### 3. Configuration dans NZBGet
|
|
|
|
1. Ouvrez l'interface web de NZBGet
|
|
2. Allez dans **Settings** (Paramètres)
|
|
3. Cliquez sur **Reload** en bas à droite pour que NZBGet détecte le nouveau script
|
|
4. Cherchez la section **FIXENCODING**
|
|
5. Configurez les options selon vos besoins (voir ci-dessous)
|
|
|
|
### 4. Activation du script
|
|
|
|
#### Option A : Global (pour tous les téléchargements)
|
|
|
|
1. Allez dans **Settings → Extension Scripts**
|
|
2. Activez **FixEncoding.py**
|
|
|
|
#### Option B : Par catégorie
|
|
|
|
1. Allez dans **Settings → Categories**
|
|
2. Sélectionnez une catégorie
|
|
3. Dans **Extensions**, ajoutez **FixEncoding.py**
|
|
|
|
## Configuration
|
|
|
|
Le script propose plusieurs options configurables dans NZBGet :
|
|
|
|
### Debug
|
|
- **Valeurs** : `yes` / `no`
|
|
- **Défaut** : `no`
|
|
- **Description** : Active le mode débogage pour afficher plus d'informations dans les logs
|
|
|
|
### FileExtensions
|
|
- **Valeurs** : Extensions séparées par des virgules (ex: `.flac,.mp3,.mkv`)
|
|
- **Défaut** : Vide (tous les fichiers)
|
|
- **Description** : Limite le traitement aux fichiers avec ces extensions
|
|
|
|
### DryRun
|
|
- **Valeurs** : `yes` / `no`
|
|
- **Défaut** : `no`
|
|
- **Description** : Mode simulation - affiche ce qui serait fait sans modifier les fichiers
|
|
|
|
## Utilisation
|
|
|
|
### Automatique
|
|
|
|
Une fois configuré, le script s'exécute automatiquement après chaque téléchargement et corrige les noms de fichiers si nécessaire.
|
|
|
|
### Test manuel
|
|
|
|
Pour tester le script sur un téléchargement déjà terminé :
|
|
|
|
1. Ouvrez l'interface web de NZBGet
|
|
2. Allez dans **History** (Historique)
|
|
3. Sélectionnez un téléchargement
|
|
4. Cliquez sur **Post-Process Again**
|
|
5. Sélectionnez **FixEncoding.py**
|
|
6. Cliquez sur **Start**
|
|
|
|
### Mode simulation (recommandé pour le premier test)
|
|
|
|
1. Dans **Settings**, activez **DryRun=yes** pour FixEncoding
|
|
2. Exécutez le script sur un téléchargement de test
|
|
3. Vérifiez les logs pour voir ce qui serait modifié
|
|
4. Si tout est correct, désactivez DryRun
|
|
|
|
## Vérification des logs
|
|
|
|
Pour voir ce que le script a fait :
|
|
|
|
1. Allez dans **Messages** dans NZBGet
|
|
2. Cherchez les messages `[INFO]` de FixEncoding
|
|
3. Vous verrez :
|
|
- Les fichiers détectés avec des problèmes d'encodage
|
|
- Les anciens et nouveaux noms
|
|
- Un résumé du nombre de fichiers traités
|
|
|
|
## Exemples de logs
|
|
|
|
### Succès
|
|
```
|
|
[INFO] === Début du traitement de correction d'encodage ===
|
|
[INFO] Répertoire: /downloads/Music/Album
|
|
[INFO] Renommage: 19-La grâce.flac
|
|
[INFO] -> 19-La grâce.flac
|
|
[INFO] Renommage: 06-La fièvre dans le sang.flac
|
|
[INFO] -> 06-La fièvre dans le sang.flac
|
|
[INFO] === Résumé ===
|
|
[INFO] Fichiers traités: 15
|
|
[INFO] Fichiers renommés: 2
|
|
[INFO] Correction d'encodage terminée avec succès
|
|
```
|
|
|
|
### Aucun fichier à corriger
|
|
```
|
|
[INFO] === Début du traitement de correction d'encodage ===
|
|
[INFO] Répertoire: /downloads/Music/Album
|
|
[INFO] === Résumé ===
|
|
[INFO] Fichiers traités: 10
|
|
[INFO] Fichiers renommés: 0
|
|
[INFO] Aucun fichier à corriger
|
|
```
|
|
|
|
## Compatibilité
|
|
|
|
Le script est compatible avec :
|
|
- ✅ Linux (toutes distributions)
|
|
- ✅ Windows (avec Python installé)
|
|
- ✅ macOS
|
|
- ✅ Docker (NZBGet en conteneur)
|
|
- ✅ NAS Synology, QNAP, etc. (avec Python)
|
|
|
|
## Outils de diagnostic
|
|
|
|
### Script de diagnostic
|
|
Le package inclut un script de diagnostic pour analyser les noms de fichiers problématiques :
|
|
|
|
```bash
|
|
# Analyser un fichier spécifique
|
|
python3 diagnose_filename.py "nom-du-fichier.ext"
|
|
|
|
# Analyser tous les fichiers d'un dossier
|
|
python3 diagnose_filename.py /chemin/vers/dossier
|
|
```
|
|
|
|
Ce script affiche :
|
|
- Les octets exacts du nom de fichier
|
|
- Les caractères suspects (espaces insécables, etc.)
|
|
- Les patterns d'encodage détectés
|
|
- Le résultat de la correction
|
|
|
|
**Utilisez-le en cas de problème pour comprendre exactement ce qui se passe !**
|
|
|
|
## Dépannage
|
|
|
|
### Le script ne s'exécute pas
|
|
|
|
1. Vérifiez que Python 3 est installé :
|
|
```bash
|
|
python3 --version
|
|
```
|
|
|
|
2. Vérifiez les permissions du script :
|
|
```bash
|
|
ls -l /path/to/scripts/FixEncoding.py
|
|
```
|
|
|
|
3. Activez le mode Debug et consultez les logs
|
|
|
|
### Les fichiers ne sont pas renommés
|
|
|
|
1. Vérifiez que le script est bien activé dans la configuration
|
|
2. Activez DryRun pour voir ce que le script détecte
|
|
3. Consultez les logs dans NZBGet
|
|
|
|
### Un fichier spécifique n'est pas corrigé
|
|
|
|
Si un fichier contenant "Ã " n'est pas corrigé, c'est probablement dû à un **espace insécable invisible**.
|
|
|
|
**Diagnostic :**
|
|
```bash
|
|
python3 diagnose_filename.py "nom-du-fichier-problematique.ext"
|
|
```
|
|
|
|
Ce script vous montrera exactement quels caractères posent problème.
|
|
|
|
**Solution :**
|
|
- Assurez-vous d'utiliser la dernière version du script (qui gère les espaces insécables)
|
|
- Réexécutez le post-processing sur ce téléchargement
|
|
|
|
Consultez `PROBLEME_FICHIER_NON_CORRIGE.md` pour plus de détails.
|
|
|
|
### Erreur "File exists"
|
|
|
|
Le script ne renommera pas un fichier si le nom de destination existe déjà. Vous devrez renommer manuellement l'un des deux fichiers.
|
|
|
|
## Support
|
|
|
|
Pour toute question ou problème :
|
|
- Consultez les logs avec Debug=yes
|
|
- Vérifiez que vous utilisez Python 3.x
|
|
- Assurez-vous que le script a les bonnes permissions
|
|
|
|
## Licence
|
|
|
|
Script libre d'utilisation et de modification.
|