#1 Le 02/04/2011, à 20:46
- Zakhar
[Utilitaire Freebox] Script renommer fichier dl.free.fr sur votre V6
Vous l'avez peut-être remarqué, pour l'instant la Freebox Server a un "bug" (et ce n'est pas le seul... ni le plus grave !..)
En effet, lorsqu'on télécharge un fichier sur dl.free.fr, celui-ci, au lieu d'avoir le nom original qu'on a donné au fichier à l'upload, présente le nom du dernier tronçon du lien.
Ainsi, si j'ai mis en ligne :
Mon_Film_Vacances.mkv
et que le lien qui m'a été donné est :
Lorsque je demande à la freebox :
- via le menu HTML de la freebox
- via un addon de votre navigateur
- via mon script ici
Le nom du fichier sur le Freebox sera abcdefghi et non pas Mon_Film_Vacances.mkv
Il vous faudra donc récupérer d'une façon où d'une autre le nom d'origine, puis procéder au renommage manuellement....
J'ai signalé le bug sur le tracker, ici : http://bugs.freeplayer.org/task/6480#comment27419
Ou alors utiliser le script ci-dessous :
$cat mvFreebox.sh
#! /bin/bash
. freePasswd.sh
downloadDir='/Disque dur/Téléchargements/'
cookieFile=$( mktemp )
tmpFile=$( mktemp )
# ==== Login ====
curl -c ${cookieFile} -d "login=freebox&passwd=${password}" http://mafreebox.freebox.fr/login.php -o /dev/null -s || { err=$?; echo "Erreur connexion"; exit ${err}; }
# ==== Récupération liste des fichiers ====
liste=$(curl -s -b ${cookieFile} http://mafreebox.freebox.fr/download.cgi --data '{"jsonrpc":"2.0","method":"download.list"}' -H 'Content-Type: application/json; charset=utf-8') || { err=$?; echo "Erreur récupération liste"; exit ${err}; }
liste=$(echo ${liste} | sed 's/.*\[//;s/\].*//;s/},/}#/g')
i=1
# ==== Découpage de liste en items représentant un seul fichiers ====
while true; do
item=$(echo ${liste} | cut -d '#' -f ${i})
if [ -z ${item} ]; then
break;
fi
# ==== On ne renomme que les fichiers terminés ====
if echo $item | grep '"status":"done"' >/dev/null; then
name=$(echo ${item} | sed 's/.*,"name":"//;s/".*//')
url=$(echo ${item} | sed 's/.*,"url":"//;s/".*//')
if [ ${url:0:21} = 'http:\/\/dl.free.fr\/' ]; then
url=$(echo ${url} | sed 's/\\//g')
# ==== Recherche du vrai nom via dl.free.fr ====
curl "${url}" -H 'Range: bytes=-0' -D ${tmpFile} || { echo "curl: Erreur récupération headers de ${url}"; exit 1; }
if grep "HTTP/1.1 404" ${tmpFile}; then
echo "HTTP/1.1 404 : Fichier ${url} non trouvé."
exit 1
fi
if grep "HTTP/1.1 416" ${tmpFile} >/dev/null; then
realName=$( sed -n '/Content-disposition/s/.*filename=//p' ${tmpFile} | sed 's/\r$//' )
# ==== Renommage ====
curl -s -b ${cookieFile} http://mafreebox.freebox.fr/fs.cgi --data "{\"jsonrpc\":\"2.0\",\"method\":\"fs.move\",\"params\":[\"${downloadDir}${name}\",\"${downloadDir}${realName}\"]}"\
-H 'Content-Type: application/json; charset=utf-8' || { err=$?; echo "Erreur renommage"; exit ${err}; }
echo -e "Renommage de: \E[1m$name\E[0m en \E[1m$realName\E[0m"
fi
fi
fi
i=$((i+1))
done
rm ${cookieFile} ${tmpFile} 2>/dev/null
Utilisation :
Créer le fichier mvFreebox.sh et copiez-y le script ci-dessus.
- De même que pour le script permettant de télécharger directement sur la Freebox, il faut créer ainsi le fichier contenant votre mot de passe et nommé freePasswd.sh
password="Votre_mot_de_passe"
- Rendez les deux fichiers exécutables et sécurisez le fichier contenant le mot de passe (vous seul peut le lire/exécuter) :
chmod +x mvFreebox.sh
chmod 500 freePasswd.sh
Si vous avez changé le répertoire de téléchargement, modifiez la variable downloadDir dans le script ci-dessus.
Usage:
$./mvFreebox.sh
Aucun paramètre. Le script renommera correctement tous les fichiers dont le téléchargement est terminé et dont la source est dl.free.fr
Désinstallation :
Il vous suffit de supprimer le script et le fichier contenant votre mot de passe de connexion Freebox.
rm -f mvFreebox.sh freePasswd.sh
P.S. : le jour où Free aura corrigé le "bug" vous le script deviendra inutile, et vous pourrez alors procéder à sa "désinstallation" comme indiqué ci-dessus.
Dernière modification par Zakhar (Le 03/04/2011, à 08:00)
"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)
Hors ligne
#2 Le 02/04/2011, à 23:16
- nordinatueur
Re : [Utilitaire Freebox] Script renommer fichier dl.free.fr sur votre V6
Abonnement ...
Linux User #508094
Pour une meilleure coopération, utilisez des liens relatifs sur le forum !
Hors ligne