• Seedbox
  • [Résolu] Les événements avec rtorrent

J'ai pas envoyé le bon script
#/bin/bash
USER=toto
cd /var/www/rutorrent/share/users/"$USER"/torrents
TORRENT=$(ls -1t | head -1)
cp "$TORRENT" /home/"$USER"/ton_dossier
désolé
Merci pour vos proposition,

ex_rat, le soucis de ta méthode est que si je rajoute plusieurs torrent, sa foire.

pour mes test, j'en suis la :
system.method.set_key = event.download.finished,move,"execute=/home/seed/move_torrent.sh,$d.get_name=,$d.get_loaded_file=,$d.get_hash="
#/bin/bash
name=$1
name2=$2
name3=$3
echo "d.get_name" >> /home/seed/log_mov.txt
echo $name >> /home/seed/log_mov.txt
echo "d.get_loaded_file" >> /home/seed/log_mov.txt
echo $name2 >> /home/seed/log_mov.txt
echo "d.get_hash" >> /home/seed/log_mov.txt
echo $name3 >> /home/seed/log_mov.txt
echo "fininfo" >> /home/seed/log_mov.txt

cp $name2  /home/seed/move_torrent/$name

echo "fincopy" >> /home/seed/log_mov.txt

résultat :
seed@debian:~$ cat log_mov.txt 
d.get_name
ubuntu-12.04.5-server-amd64.iso
d.get_loaded_file

d.get_hash
859DA4D7AFFD6EFD937236EDFB19C5FF1CB51F0A
fininfo
fincopy
je ne comprends absolument pas pourquoi le : d.get_loaded_file, ne me retourne rien ?

vous avez une idée?
$d.hash = le hash du torrent
Dans ton répertoire "session" tu as tous les hash.torrent
C'est que ça doit pas être ça ^^.
Comme j'ai dis, j'étais pas sur du d.get_loaded_file


J'ai sniffé un peu rutorrent pour voir ce qu'il demande lorsque tu fais un clique droit sur un torrent + télécharger le .torrent. Apparemment il envoie une requête à action.php et demande le filename. Donc en espérant que ce sois logique, je pense qu'il faut que tu ajoute :
$d.get_base_filename=

Si c'est pas ça, faut regarder sur https://code.google.com/p/gi-torrent/wiki/rTorrent_XMLRPC_reference, tu as la liste des commandes possible, mais pas forcément une description.
je viens de rajouter tous ce qu'il y a dans la liste;


system.method.set_key = event.download.finished,move,"execute=/home/seed/move_torrent.sh,$d.get_hash=,$d.get_base_filename=,$d.get_base_path=,$d.get_directory=,$d.get_directory_base=,$d.get_loaded_file=,$d.get_name="
#/bin/bash
name1=$1
name2=$2
name3=$3
name4=$4
name5=$5
name6=$6
name7=$7
echo "d.get_hash" >> /home/seed/log_mov.txt
echo $name1 >> /home/seed/log_mov.txt
echo "d.get_base_filename" >> /home/seed/log_mov.txt
echo $name2 >> /home/seed/log_mov.txt
echo "d.get_base_path" >> /home/seed/log_mov.txt
echo $name3 >> /home/seed/log_mov.txt
echo "d.get_directory" >> /home/seed/log_mov.txt
echo $name4 >> /home/seed/log_mov.txt
echo "d.get_directory_base" >> /home/seed/log_mov.txt
echo $name5 >> /home/seed/log_mov.txt
echo "d.get_loaded_file" >> /home/seed/log_mov.txt
echo $name6 >> /home/seed/log_mov.txt
echo "d.get_name" >> /home/seed/log_mov.txt
echo $name7 >> /home/seed/log_mov.txt



echo "fininfo" >> /home/seed/log_mov.txt
résultat :
d.get_hash
CC636EDC58554E019715AC419ED0E302AC6EC2B1
d.get_base_filename
ubuntu-12.04.5-server-i386.iso
d.get_base_path
/home/00-Dl/10-freeleech-what/ubuntu-12.04.5-server-i386.iso
d.get_directory
/home/00-Dl/10-freeleech-what
d.get_directory_base
/home/00-Dl/10-freeleech-what
d.get_loaded_file

d.get_name
ubuntu-12.04.5-server-i386.iso
fininfo
le d.get_loaded_file, ne fonctionne pas, même si il est dans la liste des commandes.

je pense réussir à m'en sortir avec tous sa.

Je repasse donner mon résultat.
j'ai avancé, mais j'ai un soucis sur la ligne 28 et 30, je comprends pas pourquoi il considère pas cela comme une variable.
#/bin/bash
hash_torrent=$1
name2=$2
name3=$3
name4=$4
name5=$5
name6=$6
name7=$7
echo "d.get_hash" >> /home/seed/log_mov.txt
echo $hash_torrent >> /home/seed/log_mov.txt
echo "d.get_base_filename" >> /home/seed/log_mov.txt
echo $name2 >> /home/seed/log_mov.txt
echo "d.get_base_path" >> /home/seed/log_mov.txt
echo $name3 >> /home/seed/log_mov.txt
echo "d.get_directory" >> /home/seed/log_mov.txt
echo $name4 >> /home/seed/log_mov.txt
echo "d.get_directory_base" >> /home/seed/log_mov.txt
echo $name5 >> /home/seed/log_mov.txt
echo "d.get_loaded_file" >> /home/seed/log_mov.txt
echo $name6 >> /home/seed/log_mov.txt
echo "d.get_name" >> /home/seed/log_mov.txt
echo $name7 >> /home/seed/log_mov.txt



echo "fininfo" >> /home/seed/log_mov.txt
echo "debut traitement" >> /home/seed/log_mov.txt
nom_torrent=$hash_torrent + ".torrent"
echo "nom.torrent" >> /home/seed/log_mov.txt
nom_torrent_full="/home/seed/downloads/.session/" + $nom_torrent
echo "nom.torrent complet" >> /home/seed/log_mov.txt
echo $nom_torrent_full >> /home/seed/log_mov.txt

echo "fin traitement" >> /home/seed/log_mov.txt

echo cp $nom_torrent_full  /home/seed/move_torrent/$name7

echo "fincopy" >> /home/seed/log_mov.txt


seed@debian:~$ ./move_torrent.sh hash po po po po po final.torrent
./move_torrent.sh: ligne28: + : commande introuvable
./move_torrent.sh: ligne30: + : commande introuvable
cp /home/seed/move_torrent/final.torrent
seed@debian:~$ 
nom_torrent=$hash_torrent + ".torrent"
Le + n'existe pas en bash :
nom_torrent="${hash_torrent}.torrent"
nom_torrent_full="/home/seed/downloads/.session/${nom_torrent}"
c'est parfait, merci à tous pour votre aide.

Je met le code si sa intéraisse des gens qui passeraient par la plus tard
  GNU nano 2.2.6                  Fichier : move_torrent.sh                                           

#/bin/bash
hash_torrent=$1
name2=$2
name3=$3
name4=$4
name5=$5
name6=$6
name7=$7
#echo "d.get_hash" >> /home/seed/log_mov.txt
#echo $hash_torrent >> /home/seed/log_mov.txt
#echo "d.get_base_filename" >> /home/seed/log_mov.txt
#echo $name2 >> /home/seed/log_mov.txt
#echo "d.get_base_path" >> /home/seed/log_mov.txt
#echo $name3 >> /home/seed/log_mov.txt
#echo "d.get_directory" >> /home/seed/log_mov.txt
#echo $name4 >> /home/seed/log_mov.txt
#echo "d.get_directory_base" >> /home/seed/log_mov.txt
#echo $name5 >> /home/seed/log_mov.txt
#echo "d.get_loaded_file" >> /home/seed/log_mov.txt
#echo $name6 >> /home/seed/log_mov.txt
#echo "d.get_name" >> /home/seed/log_mov.txt
echo $name7 >> /home/seed/log_mov.txt

#echo "fininfo" >> /home/seed/log_mov.txt
#echo "debut traitement" >> /home/seed/log_mov.txt
nom_torrent=${hash_torrent}.torrent
#echo "nom.torrent" >> /home/seed/log_mov.txt
nom_torrent_full="/home/seed/downloads/.session/${nom_torrent}"
#echo "nom.torrent complet" >> /home/seed/log_mov.txt
#echo $nom_torrent_full >> /home/seed/log_mov.txt

#echo "fin traitement" >> /home/seed/log_mov.txt

cp $nom_torrent_full  /home/seed/move_torrent/$name7".torrent"

#echo "fincopy" >> /home/seed/log_mov.txt


bonjour,

je reviens vous voir car sa ne marche plus.

J'ai l'impression que les noms avec espaces ne fonctionnent pas .

Savez vous comment récupérer le code erreur de cp ?

merci
Pour que cp ignore les espaces faut " " le nom de fichier, j'ai eu une galère avec ça y'a pas longtemps aussi moi.
Tentes comme ça (sans garantie), mais par tatonnement ça devrait passer avec des guillemets
cp $nom_torrent_full  /home/seed/move_torrent/"$name7"".torrent"
ou du genre:
cp $nom_torrent_full  /home/seed/move_torrent/"$name7.torrent"
enfin faut tester quoi
Ex.
merci pour ton aide

j'en suis arrivé a cela et sa marche
namefinal="/data/01-autodl/01-up_1/"
echo $namefinal >> /home/seed/log_mov.txt
namefinal=${namefinal}${name7}
echo $namefinal >> /home/seed/log_mov.txt
namefinal=${namefinal}.torrent
echo $namefinal >> /home/seed/log_mov.txt

cp $nom_torrent_full "`echo $namefinal`"
Répondre…