Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 02/04/2011, à 21: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 :

http://dl.free.fr/abcdefghi

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, à 09:00)


"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)

Hors ligne

#2 Le 03/04/2011, à 00: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