gormson wrote:Hello,
Bon et bien après maintes péripéties (des bonnes grosses prises de têtes surtout) j'ai enfin réussi à faire ce que je voulais.
Pour rappel, je cherchais à avoir l'équivalent du dossier Media du tuto accessible dans cakebox. Mais pour cela, il n'y a que les hardlinks qui fonctionnent, problème des hardlinks, ils sont très dur à effacer
Je voulais pouvoir voir les fichiers renommés dans cakebox pour pouvoir les télécharger via mon flux RSS. En effet le Plex de la seedbox à plus une vocation de partage entre users que d'utilisation nominale... c'est surtout mon Plex local que j'utilise.
Pour mon besoin mes torrents sont téléchargés dans le dossier de base : torrents/
Grâce à Autotools et surtout Automove, lorsque le DL est terminés un lien symbolique est créé dans : termines/
Cakebox pointe vers termines/
Au final j'arrive à ce principe
https://images.mondedie.fr/images/image002.png
J'ai choisis 2 comportements différents en fonction des séries ou des films (en gros les séries je les veux en anglais et les films en français) du coup j'ai ça en tant que torrent-postprocess:
#!/bin/bash
TORRENT_PATH=$1
TORRENT_NAME=$2
TORRENT_LABEL=$3
UTILISATEUR="USERAREMPLACER"
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 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 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
Là où ça se complique c'est que filebot doit me créer des hardlink (pour que le résultat soit visible dans cakebox) et donc il faut être capable de les effacer lorsque je supprime un torrent de la liste.
J'ai donc créé ce script pour les effacer :
#!/bin/bash
#Nom du Script : hardlink_delete
#Param : Le chemin du torrent à supprimer
TORRENTPATH=$1
UTILISATEUR="USERAREMPLACER"
#Recuperation de l'inode du torrent supprime
INODE=$(ls -i $TORRENTPATH | sed -e "s|$TORRENTPATH||")
#Sauvegarde de l'inode et du nom du fichier correspondant dans un log
echo "Suppression inode $INODE | fichier $TORRENTPATH" >> /home/$UTILISATEUR/.session/inode.log
#Suppression du fichier via l'inode
find /home/ -inum $INODE -exec rm {} \;
J'ai aussi adapté rtorrent-postprocessdelete pour ne pas qu'il supprime des dossiers indexé par Plex
#!/bin/bash
UTILISATEUR="USERAREMPLACER"
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 &
ne reste plus qu'à ajouter le lancement de ce script dans .rtorrent.rc
J'ai personnellement la ligne ci dessous qui est placée avant celle lançant rtorrent-postprocessdelete
echo "system.method.set_key=event.download.erased,rtorrent_hardlink_delete,\"execute={/home/$UTILISATEUR/hardlink_delete,\$d.get_base_path=}\"" >> /home/$UTILISATEUR/.rtorrent.rc
Ne pas oublier de redémarrer le service.
En espérant que ça en aidera certains.