Ola
Peut être que ça aidera certains, voici ma config.
Chacun de mes torrents est placé dans un dossier particulier en fonction de son type (tv, movie ou other).
le post-process est lancé à chaque fin de DL d'un torrent.
voici mon rtorrent-postprocess
#!/bin/bash
TORRENT_PATH=$1
TORRENT_NAME=$2
TORRENT_LABEL=$3
UTILISATEUR="gormson"
if [ $TORRENT_LABEL = "tv" ]
then
sh /home/$UTILISATEUR/.filebot/filebot.sh --lang en -script fn:amc --output "/home/$UTILISATEUR/termines" --log-file "/home/$UTILISATEUR/.session/amc.log" --action hardlink --conflict override -non-strict --def plex=localhost:TOKEN unsorted=y "seriesFormat={output}/tv/{n}/{n} - {s00e00}" "movieFormat={output}/movie/{n} ({y})" "ut_dir=$TORRENT_PATH" "ut_kind=multi" "ut_title=$TORRENT_NAME" "ut_label=$TORRENT_LABEL" &
elif [ $TORRENT_LABEL = "movie" ]
then
sh /home/$UTILISATEUR/.filebot/filebot.sh --lang fr -script fn:amc --output "/home/$UTILISATEUR/termines" --log-file "/home/$UTILISATEUR/.session/amc.log" --action hardlink --conflict override -non-strict --def plex=localhost:TOKEN unsorted=y "seriesFormat={output}/tv/{n}/{n} - {s00e00}" "movieFormat={output}/movie/{n} ({y})" "ut_dir=$TORRENT_PATH" "ut_kind=multi" "ut_title=$TORRENT_NAME" "ut_label=$TORRENT_LABEL" &
fi
le script s'adapte aux utilisateurs.
Pour le détail des options, je vous le donne parce qu'il m'a fallu du temps pour piger le fonctionnement lol
>> --lang fr : la langue du renommage, pour moi les séries gardent leur titre originales, et les films prennent leur titre français. c'est pour ça le if/then dans mon script c'est pas pour le plaisir de faire du copier-coller
>> --output "/home/$UTILISATEUR/termines" : le répertoire racine des fichiers traités
>> --log-file "/home/$UTILISATEUR/.session/amc.log" : pour le fichier log
>> --def plex=localhost:TOKEN : pour mettre à jour Plex dans la foulée, TOKEN est à remplacer par votre token propre à votre plex
>> --action hardlink : créé un hardlink du fichier pour la version renommé, simplement pour que celui-ci apparaisse dans cakebox, c'est la seule solution que j'ai trouvé
>> unsorted=y : pour placer dans le dossier Unsorted (dans le répertoire racine ci-dessus.
>> "seriesFormat={output}/tv/{n}/{n} - {s00e00}" : va placer dans le dossier racine (voir plus haut) le fichier renommé. Ex dans mon cas pour une série nommée Arrow saison 1 épisode 1, ça donnera
/home/gormson/termines/tv/Arrow/Arrow - S01E01.mkv. Avec Plex pas besoin de ranger dans des dossiers séparés les saisons...
>> "movieFormat={output}/movie/{n} ({y})" : comme ci-dessus ça donnerait
/home/gormson/termines/movie/Titanic (Son Année de sortie)
>> "ut_label=$TORRENT_LABEL" : permet de faciliter le traitement pour filebot, en effet dans mon cas ça va passer soit tv soit movie, et filebot va donc privilégier le traitement de série ou de film... ça évite les erreurs.
pour le reste se sont les variables passées par rutorrent au script, il faut garder l'ordre et l'affectation.
Tout ceci ne fonctionne que ci le post-process est lancé correctement donc avec la ligne suivante dans votre fichier .rtorrent.rc
system.method.set_key=event.download.finished,filebot_amc,"execute={/home/gormson/rtorrent-postprocess,$d.get_base_path=,$d.get_name=,$d.get_custom1=}"
Faites bien gaffe à la syntaxe!!! surtout pour les variables!!
Là où ça devient drôle c'est pour effacer les fichiers. En effet, avec la création d'un hardlink, si vous effacez le fichier source, les données restent et son transférées vers le hardlink créé. Sans parlé de filebot qui ne supprime pas les hardlinks, les symlinks oui mais pas les hardlinks.
Du coup j'ai écrit un post-process adapté pour supprimer les hardlinks via leur numéro d'inode, du coup ça supprime tout d'un coup.
Le script se nome hardlink-delete
#!/bin/sh
UTILISATEUR="gormson"
echo "-------------------------------------------------------------------" >> /home/$UTILISATEUR/.session/inode.log
for inode in $(ls -i "$1" | cut -d" " -f1)
do
echo "Traitement Inode $inode | Fichier $(find /home/ -inum $inode)" >> /home/$UTILISATEUR/.session/inode.log
find /home/ -inum $inode -exec rm "{}" \;
done
if [ -d "$1" ]
then
echo "-------> Traitement Dossier $1" >> /home/$UTILISATEUR/.session/inode.log
rmdir "$1"
fi
echo "-------------------------------------------------------------------" >> /home/$UTILISATEUR/.session/inode.log
Il se lance lorsque l'on clique sur effacer le torrent dans rutorrent (surtout pas effacer les données tout ça, juste effacer le torrent)
system.method.set_key=event.download.erased,rtorrent_hardlink_delete,"execute={/home/gormson/hardlink_delete,$d.get_base_path=}"
J'ai aussi gardé le clean fait par filebot pour nettoyer les dossiers vides et autre symlinks qui pourrait subsister.
Dans le fichier torrent-postprocessdelete
#!/bin/bash
UTILISATEUR="gormson"
sh /home/$UTILISATEUR/.filebot/filebot.sh -script fn:cleaner /home/$UTILISATEUR/termines/vrac &
sh /home/$UTILISATEUR/.filebot/filebot.sh -script fn:cleaner /home/$UTILISATEUR/termines/tv &
sh /home/$UTILISATEUR/.filebot/filebot.sh -script fn:cleaner /home/$UTILISATEUR/termines/movie &
sh /home/$UTILISATEUR/.filebot/filebot.sh -script fn:cleaner /home/$UTILISATEUR/termines/Unpassed &
avec dans votre fichier .rtorrent.rc la ligne :
system.method.set_key=event.download.erased,filebot_cleaner,"execute=/home/gormson/rtorrent-postprocessdelete"
Du coup ça prend un chouille plus de temps mais ça fonctionne nickel.
Je l'ai même couplé avec sickrage, et filebot continue à faire le post traitement.
En espérant que ça en aidera certains.
Pratique d'avoir madame enceinte qui regarde dance avec les stars... j'ai du temps pour aider un peu au lieu d'être toujours celui qui pose des questions lol