Aller au contenu

Corriger Les Problème D'accents Sous Sabnzbd


Lapin

Messages recommandés

/! Mise à jour Importante !!

Depuis 2013 le script (version 1.9), a été directement intégré dans SynoCommunity SABnzbd (Merci Diaoul !! :) ).

Pour ceux qui n'ont encore rien installé, vous pouvez directement allé à la section 8.

Le répertoire "Script" avec l'installation par défaut est:

/usr/local/sabnzbd/var/scripts

 

Cependant le package SynoCommunity va installé le script uniquement si SABnzbd n'est pas déjà installé !!

Si vous faites une mise à jour d'une version existante, alors vous devez

suivre le tuto en entier!!! Ou tout désinstaller puis tout

réinstaller.... C'est vous qui voyez... ;)

/! Fin de mise à jour

 

 

Au cas où vous considéreriez que les heures passées méritent quelque chose:

btn_donate_SM.gif

MAIS, merci de faire un don à SABnzbd et SynoCommunity d'abord et si il vous reste quelques piécettes alors vous pouvez penser à moi. :)

Ce que ce script peut faire pour vous:

Le script permet de corriger les problèmes d'accents lorsque SABnzbd tourne sur un NAS Synology.

Il inclue aussi les options suivantes (le script doit être édité pour les activer/désactiver):

  • Fonction pour décompresser les archives .7z (Activer par défaut)
  • Fonction pour déplacer le répertoire vers une destination au choix: 2 modes possible, un mode qui écrase, un mode qui fusionne. (Désactiver par défaut)
  • Fonction pour indexer automatiquement le répertoire dans le DLNA du Syno. (Désactiver par défaut)
  • Fonction pour envoyer le répertoire vers SickBeard (NB: le script sabToSickBeard.py doit être configuré et fonctionnel). (Désactiver par défaut)

Attention: les options DLNA/SickBeard sont exclusive. C'est soit l'une, soit l'autre. Si vous voulez les 2 en même temps, il faut configurer l'indexeur DLNA dans l'interface de SickBeard.

 

[Edit du 2 Octobre 2013]

  • Correction d'un problème de post-processing avec Sickbeard quand le répertoire contient un caractère spécial.
  • La version du script est maintenant affiché pour faciliter le suivi pour le debug.

Cette version n'est pas inclus dans le package SynoCommunity SABnzbd

Il faut suivre le tuto, puis aller dans la section options pour activer celles qui vous intéresse.

Si vous utilisez déjà ce script, il faut suivre les étapes 1 à 6 pour mettre à jour.

Depuis le début d'année j'ai reçu 1 seul et unique don par un Hollandais. Alors soyez sympa pensez à moi! Surtout que je viens de me faire licencier économique :unsure: depuis 1mois... D'un autre côté le script ne représente pas grand chose par rapport au boulot que doit fournir l'équipe SABnbzd et Diaoul, mais il rend quand même bien service...

[Edit du 2 Octobre 2013]

 

[Edit du 19 Février 2013]

  • Ajout d'une option pour activer le post-processing Sickbeard.
  • Fonction 'Move' plus évolué (2 modes).
  • Rajout d'une fonction que je n'aurai pas dû retirer.
  • Utilisation du code page cp850 au lieu de cp437.

Cette version est inclus dans le package SynoCommunity SABnzbd à partir de la version 0.7.14

[Edit du 19 Février 2013]

 

TIP: Vous pouvez utiliser le package de Mertymade pour éditer vos fichier de config:

Config File Editor

Lancer l'application depuis DSM, puis sélectionnez Config File Editor dans la list, ajoutez la ligne suivante au début ou à la fin (exemple pour le package SynoCommunity):

 

/usr/local/sabnzbd/var/scripts/CharTranslator.py,CharTrans

Cliquez sur "Save", quittez, puis relancez l'application Config File Editor et voilà! Le script est éditable depuis DSM. :)

 

 

J'utilise les SPKs fournis par www.synocommunity.com, en particulier SABnzbd.

Oui mais voilà, il y a une problème ennuyeux avec les fichiers français: quand il y a des accents on ne peut pas accéder aux fichiers avec Samba (disque réseau du Syno). Il faut alors tout renommer par SSH avant de pouvoir s'en servir. Voici ma solution basée sur un script Python utilisant le post-processing sous SABnzbd.

 

1- Téléchargez le script:

 

 

2- Sauvez le fichier sur le NAS.

 

3- Connectez-vous sur votre NAS avec Telnet en tant que root (pas admin) et allez dans le répertoire où le fichier ZIP a été enregistré.

Par ex:

 

cd /volume1/public

4- unzipper le fichier. Sous telenet

 

unzip CharTranslator_1v5.zip

/! Attention /! Si vous utilisez une autre source que synocommunity.com vous devez mettre à jour la 1er ligne du script, afin d'indiquer le chemin où se trouve la commande python.

SynCommunity (par défaut dans fichier ZIP):

 

 

 

#!/usr/local/python/bin/python -OO

SPK MertyMade:

 

 

 

#!/var/packages/pythonutils/target/utils/bin/python -OO

ou

 

#!/volume1/@appstore/sab2/utils/bin/python -OO

A vous de vérifier avec une session Telenet

SPK Zebulon:

 

#!/usr/local/python26/bin/python -OO

5- Mettez les bons droits Unix.

Sous telenet:

 

chmod 777 CharTranslator.py

6- Déplacez le script dans le répertoire (N'oubliez pas de créer le répertoire... ;) ) où le script va être stocké. Par ex:

 

mkdir /volume1/download/SABnzbdScripts
mv CharTranslator.py /volume1/download/SABnzbdScripts

Si vous utilisez la version SynoCommunity, écrasez la version existante

 

cp -rf CharTranslator.py /usr/local/sabnzbd/var/scripts/CharTranslator.py

Config -> Folder, spécifiez le répertoire où le script va être stocké (c'est la champ Post-Processing Scripts Folder). Par ex dans mon cas /volume1/download/SABnzbdScripts. Cliquez sur le bouton Save Changes.

 

8- Finalement allez dans: Config -> Categories. Vous pouvez mettre à jour la catégorie par défaut. En effet une colonne script est disponible, afin de sélectionner le script CharTranslator.py.Cliquez sur le bouton à droite Save.

sabnzb11.jpg

/! Attention /! le fichier doit être au format Unix! Si vous voulez modifier le fichier depuis Windows, vous pouvez utiliser le super éditeur Notepad++. N'oubliez pas de sauvegarder le fichier au format Unix (Edit -> EOL Conversion -> Unix).

Si vous avez un message d'erreur du genre: -ash: CharTranslator.py: not found le fichier est certainement au format Windows. Pour rappel: les retours à la ligne sont différent dans le monde Unix.

 

Et voilà !!

Le script est récursif, donc tous les fichiers et sous répertoire vont être scannés et modifié si nécessaire.

 

Si tout se passe correctement, vous devriez obtenir le message suivant:

Character encoding translation done! (More)

sabnzb10.jpg

 

Décompresser les fichiers au format .7z:

Le répertoire va être scanné de façon récursive et tous les fichiers .7z vont être décompressés.

Cette option est activée par défaut. Si vous ne voulez pas de cette option, alors vous devez modifier la ligne suivante:

 

Ligne 76:

 

 

 

Unpack7z = True

doit être modifié par:

 

Unpack7z = False

 

Ajouter lindexation DLNA avec synoindex:

J'ai eu une demande sur le forum officiel de SABnzbd; un des membres utilise le répertoire de téléchargement de SABnzbd comme destination finale pour ces fichiers vidéo/audio. Il m'a demandé comment lancer l'indexation DLNA, car SABnzbd ne permet pas de lancer 2 post-processing. Pour ceux qui seraient aussi intéressé par cette caractéristique, voici la procédure à suivre:

 

Ligne 68:

 

IndexInSynoDLNA = False

doit être modifié par:

 

IndexInSynoDLNA = True

Le répertoire de destination spécifié par Sabnzbd va être automatiquement indexé dans le DLNA.

 

Attention: cette fonction ne peut pas être utilisé en même temps que l'option SickBeardPostProcessing

 

 

Envoyer un téléchargement fini vers SickBeard:

NB: le script sabToSickBeard.py doit être configuré et fonctionnel

Activer cette option permet d'envoyer le téléchargement vers le post-processing de ScikBeard

 

Ligne 72:

 

SickBeardPostProcessing = False

doit être modifié par:

 

SickBeardPostProcessing = True

Attention: les options DLNA/SickBeard sont exclusive. C'est soit l'une, soit l'autre. Si vous voulez les 2 en même temps, il faut configurer l'indexeur DLNA dans l'interface de SickBeard.

Interface graphique SickBeard -> Config -> Notifications -> Enable 'Synology Indexer'

 

 

Déplacer un téléchargement fini:

Vous pouvez déplacer le répertoire dans une autre destination.

 

Ligne 51:

 

 

 

MoveToThisFolder = ''

doit être modifié par:

 

MoveToThisFolder = 'Chemin de destination des downloads'

par ex:

 

MoveToThisFolder = '/volume1/video/news'

Le déplacement a 2 modes possibles:

  • Le déplacement par défaut est l'équivalent d'un mv -f. C'est un genre de copie incrémental: rien n'est effacé, seul les fichiers portant le même nom sont écrasés par les plus récents (équivalent au déplacer/remplacer de Windows)
  • Si vous voulez qu'en cas de conflit, le sous-répertoire soit entièrement remplacé par le nouveau (équivalent a un déplacement sous MacOSx), alors il faut désactiver l'option suivante.

Ligne 62:

 

MoveMergeSubFolder = True

doit être modifié par:

 

MoveMergeSubFolder = False

Évidemment ces 3 options peuvent être cumulées.

1- Unpack les fichier .7z

2- Corrige les problèmes d'accents

3- Déplace le répertoire dans la destination spécifiée

4- Ajout des fichiers multimedia dans le DLNA du Syno.

 

 

Finalement pour ceux qui sont intéressé uniquement pout la fonction 7z unpack avec SickBeard:

Si seul la décompression 7z vous intéresse en particulier avec SickBeard, alors voici un mini Tuto:

 

1- Téléchargez le script:

 

 

2- Sauvez le fichier sur le NAS.

 

3- Connectez-vous sur votre NAS avec Telnet et allez dans le répertoire où le fichier ZIP a été enregistré.

Par ex:

 

cd /volume1/public

4- unzipper le fichier. Sous telenet

 

unzip sabToSickBeard_1v1.zip

/! Attention /! Si vous utilisez une autre source que synocommunity.com vous devez mettre à jour la 1er ligne du script, afin d'indiquer le chemin où se trouve la commande python (Voir début du tuto).

 

5- Mettez les bons droits Unix.

Sous telenet:

 

 

 

chmod 777 sabToSickBeard.py

6- Si vous utilisez la version SynoCommunity, écrasez la version existante

 

cp -rf sabToSickBeard.py /usr/local/sickbeard/share/SickBeard/autoProcessTV/sabToSickBeard.py

Et voilà les NZB au format .7z vont être décompressé avant d'être envoyé à SickBeard.

 

 

Have fun folks !!

 

Je suis preneur de tout les commentaires.

 

PS: Le script peut être exécuté en commande en ligne sous une session telenet à condition qu'aucune option n'est été activée .

Par ex: /volume1/download/SABnzbdScripts/CharTranslator.py "Nom du répertoire qui doit être corrigé"

Si vous exécutez depuis le répertoire où le script est, la commande est:

./CharTranslator.py "Nom du répertoire qui doit être corrigé"

 

/! Attention /! Ce script est a utilisé à vos risques et périls. Cependant, même si le script se trompe sur le format d'encodage, les fichiers seront tout de même lisible par Samba. Donc, au pire, vous devrez renommer manuellement les fichiers/répertoires.

Modifié par Lapin
Lien vers le commentaire
Partager sur d’autres sites

Merci ! :D

Bon je vais essayer de faire la traduction en français dans la journée. Je vais aussi mettre à jour le code, car je suis passé en version 1.1.

message modifié le 23-04-12 à 12h02:

Je fais la traduction. J'ai hâte d'avoir vos feedbacks!!

Modifié par Lapin
Lien vers le commentaire
Partager sur d’autres sites

Je laisse passer la publication en te faisant confiance quant au fait que tu en sois l'auteur ... (en cas de contestation je supprimerais!)

Re-bonjour Patrick, pour lever toute ambiguïté sur qui je suis réellement, j'ai modifié un de mes messages sur le forum officiel Synology, voir ici

Modifié par Lapin
Lien vers le commentaire
Partager sur d’autres sites

J'ai mis à jour mon post: le référence du code du script est maintenant sur la forum officiel de SABnzbd.

pour info: si vous voulez exécuter le script manuellement sur un répertoire, il ne faut pas le faire plus d'une fois, sinon cela va générer des caractères bizarre.

Limitation:

Le script ne sait pas gérer plusieurs encoding différent à partir d'un même répertoire.

Je travaille sur une nouvelle version qui va détecter si des caractères au format UTF8 existent dèjà (on pourra donc exécuter plusieurs fois le script sur un même répertoire en toute sécurité).

l'étape d'après sera de détecter l'encoding pour chaque fichier/répertoire. Ainsi si plusieurs encoding existent, le script s'adaptera à chaque fois.

Sinon, personne n'a essayé le script?? Je serai très intéressé d'avoir des retours ! :D

La suite au prochaine épisode!! ;)

Modifié par Lapin
Lien vers le commentaire
Partager sur d’autres sites

Modification majeur du script -> version 1.2

# 12-04-24 |   1.2   | Mixed encoding is not supported

#                    | UTF-8 encoding format detected

Il n'y a plus de restriction. Le script va détecter répertoire par répertoire, fichier par fichier quel encodage est utilisé. Puis il va appliquer la conversion si nécessaire. Si les fichiers sont déjà au format UTF-8, ils ne vont pas être modifiés. Le script peut donc être utilisé sur des structures contenant des encodages mixtes. A la fin tout sera au format UTF-8.

Voili, voilou !!

:)

Lien vers le commentaire
Partager sur d’autres sites

1- Je vais vérifier ce soir pour ne pas dire de bêtises, mais il me semble que la command convmv n'est pas disponible dans le NAS. Par contre, la commande Perl piconv est dispo (cependant il faut toujours spécifié le format de la source... sinon ce serait trop facile... ;) ).

2- Sinon convertir d'un format à un autre n'est pas compliqué. Par contre arriver à détecter le format source et déterminer dans quel encodage il est, ça c'est hyper galère.

En tout cas merci de ton commentaire ! :)

Sinon une nouvelle version 1.3 pour corriger une typo dans le script.

# 12-04-24 |   1.3   | Fixed typo line 57 (test must be 0xA0, not 0xA1)

Modifié par Lapin
Lien vers le commentaire
Partager sur d’autres sites

Tu devrais essayer en utilisant le module chardet en python. Je pense qu'il t'épargnera un code hasardeux de détection d'encodage.

Sinon, vu que tu dis que c'est de la faute à unrar et unzip, y'a pas moyen de leur dire l'encodage à utiliser ? Y'a des options à leur passer à la compilation pour leur dire quel encodage utiliser par défaut ?

Lien vers le commentaire
Partager sur d’autres sites

1- Je ne connaissais pas le module chardet. Je vais jeter un œil. Mais l'idée du script c'est de le rajouter en post-processing et que cela fonctionne tout seul. Pas de IPKG, pas "hack" à faire sur un package python, etc... Un truc simple pour les gens qui ne sont pas calé en informatique.

2- Pour RAR & ZIP je suis d'accord avec toi, mais le comportement pour les fichiers avec accents que j'observe avec SABnzbd sur les NAS Syno est:

  • pas de compression ou ZIP = format ISO
  • RAR = format DOS (tu peux faire l'essai dans un connexion telnet, tu verra que décompresser un fichier avec la commande unrar va générer des fichiers au format CP437)

Sinon j'ai pas mal joué avec mon script et je pense qu'il devrait fonctionner dans 99% des cas. Ce n'est clairement pas le code le plus robuste que j'ai écrit, mais pour le quidam ça fait le boulot :D

Lien vers le commentaire
Partager sur d’autres sites

Je suis d'accord, mais j'utilise le Python provenant de http://www.synocommunity.com/. Donc si j'ajoute un module, il y a de forte chance qu'il soit écrasé lors de la mise à jour de Python.

De tout façon, comme j'adore le Phyton je vais regarder ce soir ;)

Par contre chardet, n'a pas l'air de détecter l'ISO-8859-1/ISO-8859-15 (Latin).

Lien vers le commentaire
Partager sur d’autres sites

Bon alors,

J'ai regardé le package chardet. En faite il est conçu pour détecter les encodages utilisés dans l'Europe de l'Est. Ce n'est pas adapté à ce que l'on veut faire.

C'est dommage, car effectivement la difficulté n'est pas de convertir, mais de détecter le format d'encodage d'origine.

Sinon, un Hollandais a testé mon script (forum officiel Synology) et apparemment il est content.

B)

Lien vers le commentaire
Partager sur d’autres sites

L'encodage utilisé en France est le ISO-8859-15 (utilisés en allemand, anglais, basque, catalan, danois, espagnol, finnois, italien, néerlandais, norvégien, portugais et suédois (parmi d'autres langues européennes).

L'encodage 'Latin' pour les fichiers RAR est CP437.

Aucun de ces encodages est détecté par chardet. De plus chardet n'est plus mis à jour depuis 2008.. (d'ailleurs quand j'ai installé le package il a fallu que je "corrige" le setup.py, car il ne fonctionnait pas).

En conclusion mon script semble fonctionne correctement et je ne vais pas passer plus de temps dessus. Sauf évidemment si qqu'un trouve un bug.

Voili, voilou !! En tout cas, je te remercie tout de même pour le lien.

Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines après...

Bonjour :)

J'ai mis en place le script de "Lapin" et j'ai sa comme message :

Cannot run script /volume1/downloads/SanZBd/Script/CharTranslator.py

J'ai essayer de le lancer en manuelle et la j'ai droit à sa :

-ash: CharTranslator.py: not found

J'ai bien créé le fichier avec notepad ++ en unix utf8 et tous le monde peut exécuter le fichier mais "admin'" est le seul à pourvoir le modifier.

Voili :) si un lapin passé par là en sortant de sont terrier, pour me dire quoi faire ^^

Merci.

ps : je fais tourné la compil de Zébulon.

Lien vers le commentaire
Partager sur d’autres sites

Bonjour :)

J'ai mis en place le script de "Lapin" et j'ai sa comme message :

J'ai essayer de le lancer en manuelle et la j'ai droit à sa :

J'ai bien créé le fichier avec notepad ++ en unix utf8 et tous le monde peut exécuter le fichier mais "admin'" est le seul à pourvoir le modifier.

Voili :) si un lapin passé par là en sortant de sont terrier, pour me dire quoi faire ^^

Merci.

ps : je fais tourné la compil de Zébulon.

Désolé, mais j'étais absent ces derniers jours:

1- As-tu fait un chmod 777 sur le script?? C'est pour donner les droits d’exécution.

2- Si tu utilises les SPK Zebulon, alors la 1er ligne doit être

#!/usr/local/python26/bin/python -OO
3- pour l'exécuter manuellement, tu dois taper le chemin complet, car le script n'est pas ajouté dans les PATHS par défaut. Pour ton cas, cela va être qque chose du genre:
/volume1/downloads/SanZBd/Script/CharTranslator.py "Chemin du répertoire"[/code]

bonsoir,

je n'arrive pas a executer le script en manuel

j'utilise putty pour me connecter en telnet

root

pass

cd chemin de mon py

exec monfichier.py monrepertoireascanner

et la fenetre se ferme

je ne connais pas trop telnet

Que la session Telnet se ferme, c'est un peu bizarre... Sinon peux-tu essayer les étapes suivantes:

1- chmod 777 sur le fichier que tu as créé.

2- Assure-toi que le fichier est bien créé au format Unix.

Je viens de rajouter le fichier en téléchargement:

Il suffit de le copier dans le NAS, puis UNZIP, et finalement chmod 777 sur le fichier

Modifié par Lapin
Lien vers le commentaire
Partager sur d’autres sites

Salut j'ai tenté d'utiliser ton script mais j'ai un soucis avec python

en fait j'utilise la version Sabnzbd de mertymade, qui oblige a installer le package baseutils et python utils

le soucis c'est que je ne trouve pas python dans usr/local

as tu une idee de la ligne de code a changer ??

d'avance merci

Lien vers le commentaire
Partager sur d’autres sites

Ce ne serait pas qque chose comme:

/var/packages/pythonutils/bin/python ??

Et la ligne a changer est la toute 1er:

#!/usr/local/python/bin/python -OO
Cette ligne doit être remplacée par le chemin de ta commande python. Par ex dans ton cas qque chose comme (à vérifier):
#!/var/packages/pythonutils/bin/python -OO[/code]

Quand tu auras trouvé où est la commande Python, pourras-tu poster la réponse? Je pourrai alors modifier le tuto en conséquence.

:)

Modifié par Lapin
Lien vers le commentaire
Partager sur d’autres sites

alors j'ai change la premiere ligne par :

#!/var/packages/pythonutils/target/utils/bin/python -OO

le chemin ou se trouve python , mais lorsque j'essaye de lancer le script manuellement sous putty , il me met : -ash: CharTranslator.py: not found

une idée ??

merci encore pour ton aide

Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.