Page 2 of 9
Re: Fixed foreign accents on Synology NAS running SABnzbd
Posted: May 21st, 2012, 3:05 pm
by starsys
En fait mon script tiens en 2 lignes :
#!/bin/ash
/usr/syno/bin/synoindex -A "$1"
Il me permet de visionner les fichiers fraîchement téléchargés avec sabnzbd sur ma freebox player. En effet, sans ce script les fichiers téléchargés par sabnzbd ne sont pas indexés par le nas et donc non visibles en upnp sur les player upnp. Si tu as une idée de combinaison des 2 scripts ça serait vraiment le pied. Sabnzbd devient parfait. En tout cas j'ai essayé plein de fichiers avec ton script et ça marche vraiment nickel. Merci.
Re: Fixed foreign accents on Synology NAS running SABnzbd
Posted: May 21st, 2012, 3:51 pm
by LapinFou
Aucun problème pour rajouter la ligne qui va bien à la fin de mon script.
Quels sont les fichiers que tu veux indexer??
.avi, .divx, .mkv, .mt2s
peut-être aussi les
.mp3
Donne moi la liste et je te donnerais ce qu'il faut ajouter.
Re: Fixed foreign accents on Synology NAS running SABnzbd
Posted: May 22nd, 2012, 1:38 am
by starsys
J'indexe tous les fichiers téléchargés (surtout mkv) et jusqu'à présent avec ces 2 lignes de script, tout fonctionnait bien.
En fait le script utilise une variable interne de Sabnzbd (le "$1" si je me souviens bien) qui permet d'indexer le fichier qui vient d'être téléchargé, je n'ai pas à spécifier l'extension.
Donc si je résume, je rajoute mes 2 lignes à la fin de ton script :
#!/bin/ash
/usr/syno/bin/synoindex -A "$1"
Et si tout marche bien, ton script va renommer si nécessaire puis indexer le ou les fichier téléchargé ?
Penses tu que la variable "$1" va rester exploitable ?
Re: Fixed foreign accents on Synology NAS running SABnzbd
Posted: May 22nd, 2012, 2:17 am
by LapinFou
OK, alors rajoute les lignes suivantes à la fin du script, juste avant la ligne:
Code: Select all
print "Character encoding translation done!"
lignes a ajoutée:
Code: Select all
print "Adding folder in the DLNA server"
currentFolder = os.getcwd()
os.system("/usr/syno/bin/synoindex -A \"" + currentFolder + "\"")
print ""
Je suis au boulot, donc je ne peux pas tester. Tiens moi au courant si cela fonctionne.
Re: Fixed foreign accents on Synology NAS running SABnzbd
Posted: May 22nd, 2012, 2:32 am
by LapinFou
Si le bout de code fonctionne bien, alors essaye avec cela (code plus robuste)
Code: Select all
print "Adding folder in the DLNA server"
currentFolder = os.getcwd()
synoindex_cmd = ['/usr/syno/bin/synoindex', '-A', currentFolder]
try:
p = subprocess.Popen(synoindex_cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
out, err = p.communicate()
print(u"Synoindex result: " + str(out))
print(u"Synoindex error: " + str(err))
except OSError, e:
print(u"Unable to run synoindex: "+str(e))
Sans oublier de d'ajouter la librairie en début de script:
Le bout de code:
Code: Select all
# get library modules
import sys, os
devient:
Code: Select all
# get library modules
import sys, os
import subprocess
Re: Fixed foreign accents on Synology NAS running SABnzbd
Posted: May 22nd, 2012, 4:23 am
by starsys
Je suis aussi au boulot j'essaye ça ce soir. Merci beaucoup.
Re: Fixed foreign accents on Synology NAS running SABnzbd
Posted: May 22nd, 2012, 6:08 am
by starsys
J'essaye de préparer le code vite fait pendant ma pause midi.
J'insère le code avant ou après la ligne "print "Character encoding translation done!"" ?
Re: Fixed foreign accents on Synology NAS running SABnzbd
Posted: May 22nd, 2012, 6:13 am
by starsys
Erreur :
File "/volume1/video/CharTranslatorV2.py", line 128
print "Adding folder in the DLNA server"
^
IndentationError: unexpected indent
Re: Fixed foreign accents on Synology NAS running SABnzbd
Posted: May 22nd, 2012, 6:15 am
by LapinFou
Attention de ne pas utiliser le bouton SELECT ALL, sinon une tabulation va être rajouté devant chaque ligne!!
Re: Fixed foreign accents on Synology NAS running SABnzbd
Posted: May 22nd, 2012, 6:21 am
by starsys
Oui j'ai bien fait gaffe cette fois ci. Tu penses que c encore un pb de ce genre ? Je fais bien un "retourne" pour revenir à la ligne ?
Re: Fixed foreign accents on Synology NAS running SABnzbd
Posted: May 22nd, 2012, 6:29 am
by LapinFou
Cela ressemble furieusement à ce genre de problème (attention aussi que le fichier soit bien sauvé au format UNIX).
Et attention au retour à la ligne qui sont différent suivant si c'est du Window ou du Unix.
Voici a quoi doit ressembler la fin du script:
Code: Select all
########################
# --- Main Program --- #
########################
# get argument: directory of the SABnzbd job
os.chdir(sys.argv[1])
# display directory of the SABnzbd job
currentFolder = os.getcwd()
print "Current folder is" + currentFolder
# rename SABnzbd job directory (coming from SABnzbd: never in CP437 format)
print "Renaming folders to UTF-8..."
renameFunc('', currentFolder)
# process each sub-folders starting from the deepest level
for dirname, dirnames, filenames in os.walk('.', topdown=False):
for subdirname in dirnames:
renameFunc(dirname, subdirname)
print "Folder renaming Done !"
print ""
# process each file recursively
print "Renaming files to UTF-8..."
for dirname, dirnames, filenames in os.walk('.'):
for filename in filenames:
renameFunc(dirname, filename)
print "Files renaming Done !"
print ""
# add processed folder in the Syno index database
print "Adding folder in the DLNA server"
currentFolder = os.getcwd()
os.system("/usr/syno/bin/synoindex -A \"" + currentFolder + "\"")
print ""
print "Character encoding translation done!"
Re: Fixed foreign accents on Synology NAS running SABnzbd
Posted: May 22nd, 2012, 9:30 am
by starsys
Encore une fois ca devait effectivement être un problème de copier coller.
Le code semble passer maintenant :
Current folder is/volume1/video/Jenifer - Appelle-moi Jen
Renaming folders to UTF-8...
/volume1/video/Jenifer - Appelle-moi Jen -> No special characters detected: Nothing to be done
Folder renaming Done !
Renaming files to UTF-8...
./Jenifer - Appelle-moi Jen-Back.jpg -> No special characters detected: Nothing to be done
./Jenifer - Appelle-moi Jen-Front.jpg -> No special characters detected: Nothing to be done
./Jenifer - Appelle-moi Jen.nfo -> No special characters detected: Nothing to be done
./08 - Pole Dance.mp3 -> No special characters detected: Nothing to be done
./06 - Le Dos Tourné.mp3 -> ISO-8859-15 detected: Renamed
./02 - Je Danse.mp3 -> No special characters detected: Nothing to be done
./00 - Jenifer - Appelle-moi Jen.m3u -> No special characters detected: Nothing to be done
./01 - A Peine.mp3 -> No special characters detected: Nothing to be done
./05 - Les Autocollants.mp3 -> No special characters detected: Nothing to be done
./10 - Le Risque.mp3 -> No special characters detected: Nothing to be done
./11 - Je Danse (Version Longue).mp3 -> No special characters detected: Nothing to be done
./07 - L'envers Du Paradis.mp3 -> No special characters detected: Nothing to be done
./09 - Pas Que Ãa à Faire.mp3 -> ISO-8859-15 detected: Renamed
./04 - L'amour Fou.mp3 -> No special characters detected: Nothing to be done
./03 - La Vérité.mp3 -> ISO-8859-15 detected: Renamed
Files renaming Done !
Adding folder in the DLNA server
Character encoding translation done!
Je ne peut pas vérifier pour le moment chez moi si les fichiers ont été effectivement indexés mais déjà je n'ai plus de message d'erreur.
Est-ce que je dois tenter de mettre le code "plus robuste" maintenant ou bien est-ce que cette version est suffisante ? (différence ?)
Merci encore pour ton aide, je crois que je touche au but et que je vais pouvoir profiter d'un Sabnzbd compatible avec notre langue aux caractères bizarroïdes...
Re: Fixed foreign accents on Synology NAS running SABnzbd
Posted: May 22nd, 2012, 9:49 am
by LapinFou
Le code plus robuste permet de faire 2 choses:
1- Il va renvoyer les résultats de la commande synoindex
2- Il va renvoyer les erreurs en cas de problème d’exécution
contrairement à os.system qui ne fait qu'envoyer la commande Unix "en aveugle"
De plus se serait sympa aussi que tu essayes, afin de valider si j'ai bien compris le fonctionnement de la fonction Popen de la class subprocess. Car c'est la 1er fois que je l'utilise...
Re: Fixed foreign accents on Synology NAS running SABnzbd
Posted: May 22nd, 2012, 9:52 am
by LapinFou
Voici le code:
ligne 36/37 à modifer:
Code: Select all
# get library modules
import sys, os
devient
Code: Select all
# get library modules
import sys, os
import subprocess
Main program (fin du script)
Code: Select all
########################
# --- Main Program --- #
########################
# get argument: directory of the SABnzbd job
os.chdir(sys.argv[1])
# display directory of the SABnzbd job
currentFolder = os.getcwd()
print "Current folder is" + currentFolder
# rename SABnzbd job directory (coming from SABnzbd: never in CP437 format)
print "Renaming folders to UTF-8..."
renameFunc('', currentFolder)
# process each sub-folders starting from the deepest level
for dirname, dirnames, filenames in os.walk('.', topdown=False):
for subdirname in dirnames:
renameFunc(dirname, subdirname)
print "Folder renaming Done !"
print ""
# process each file recursively
print "Renaming files to UTF-8..."
for dirname, dirnames, filenames in os.walk('.'):
for filename in filenames:
renameFunc(dirname, filename)
print "Files renaming Done !"
print ""
# add processed folder in the Syno index database
print "Adding folder in the DLNA server"
currentFolder = os.getcwd()
synoindex_cmd = ['/usr/syno/bin/synoindex', '-A', currentFolder]
print("Running: " + str(synoindex_cmd))
try:
p = subprocess.Popen(synoindex_cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
out, err = p.communicate()
print("synoindex result: " + str(out))
print("synoindex error: " + str(err))
except OSError, e:
print("Unable to run synoindex: "+str(e))
print "Character encoding translation done!"
Merci de me tenir au courant, afin que je puisse mettre à jour mes tutos en conséquence.
Re: Fixed foreign accents on Synology NAS running SABnzbd
Posted: May 22nd, 2012, 9:55 am
by starsys
J'essaye de suite