Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites". Attention, le forum rencontre actuellement quelques difficultés. En cas d'erreur 502, il ne faut pas re-valider l'envoi d'un message ou l'ouverture d'une discussion, au risque de créer un doublon.

La section divers se réorganise ! De nouvelles sous-sections à venir. (plus d'infos + donner son avis)

#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 :

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, à 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 ...


nordinatueur@jabber.fr Linux User #508094
Pour une meilleure coopération, utilisez des liens relatifs sur le forum !

Hors ligne

Haut de page ↑