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.