• Applications
  • [Discussion] Utiliser FileBot pour gérer une bibliothèque multimédia

Dans ton .rc tu passes en paramètre get_finished_dir c'est normal. C'est le répertoire complet. Donc il te traite la totale.

Il faut lui passer le chemin du fichier qui vient d'être téléchargé avec get_base_path
gormson wrote:en même temps je viens de penser que j'avais améliorer mon script pour les cas de fichiers multiples et pour prendre en compte les dossiers et sous dossiers avec du récursif
A adapté parce que c'est extrait de boxCleaner.
for inode in $(ls -i "$1" | cut -d" " -f1)
do

	#Si l'inode correspond à un sous dossier on relance hardlink_delete (recursif mode engaged)
	if [ -d "$(find /home/ -inum "$inode")" ]
	then

		"$BASEPATH"/"$SCRIPTS"/hardlink_delete "$(find /home/ -inum "$inode")"

		#Verification de la bonne suppression du fichier
		if [ -d "$(find /home/ -inum "$inode")" ]
		then
			printf "${CRED}Le dossier %b n'a pas été supprimé\n${CEND}" "$1"
			echo "Date : $(date)" >> "$BASEPATH"/"$LOG"/boxCleaner_error.log
			echo "Type : Erreur de suppression du sous-dossier" >> "$BASEPATH"/"$LOG"/boxCleaner_error.log
			echo "Sous-Dossier :  $(find /home/ -inum "$inode")" >> "$BASEPATH"/"$LOG"/boxCleaner_error.log
			echo "___________________________________________________________________________________" >> "$BASEPATH"/"$LOG"/boxCleaner_error.log
		fi

	#Si l'inode correspond à un fichier standard on le supprime de manière classique
	else

	        echo "Date : $(date)" >> "$BASEPATH"/"$LOG"/boxCleaner.log
		echo "Type : Suppression Inode $inode" >> "$BASEPATH"/"$LOG"/boxCleaner.log
		echo "Fichier :  $(find /home/ -inum "$inode")" >> "$BASEPATH"/"$LOG"/boxCleaner.log
        	find /home/ -inum "$inode" -exec rm -i "{}" \;

		#Verification de la bonne suppression du fichier
		if [ -f "$1" ]
		then
			printf "${CRED}Le fichier %b n'a pas été supprimé\n${CEND}" "$1"
			echo "Date : $(date)" >> "$BASEPATH"/"$LOG"/boxCleaner_error.log
			echo "Type : Erreur de suppression du fichier" >> "$BASEPATH"/"$LOG"/boxCleaner_error.log
			echo "Fichier : $1" >> "$BASEPATH"/"$LOG"/boxCleaner_error.log
			echo "___________________________________________________________________________________" >> "$BASEPATH"/"$LOG"/boxCleaner_error.log
		fi
	fi

done

if [ -d "$1" ]
then

        echo "Date : $(date)" >> "$BASEPATH"/"$LOG"/boxCleaner.log
	echo "Type : Suppression du Dossier" >> "$BASEPATH"/"$LOG"/boxCleaner.log
	echo "Dossier : $1" >> "$BASEPATH"/"$LOG"/boxCleaner.log
        rmdir "$1"

        if [ -d "$1" ]
        then
		printf "${CRED}Le dossier %b n'a pas été supprimé\n${CEND}" "$1"
                echo "Date : $(date)" >> "$BASEPATH"/"$LOG"/boxCleaner_error.log
		echo "Type : Erreur de suppression du dossier" >> "$BASEPATH"/"$LOG"/boxCleaner_error.log
		echo "Dossier : $1" >> "$BASEPATH"/"$LOG"/boxCleaner_error.log
		echo "___________________________________________________________________________________" >> "$BASEPATH"/"$LOG"/boxCleaner_error.log
        fi

fi

printf "_______________________________________________________________________________________\n" >> "$BASEPATH"/"$LOG"/boxCleaner.log
et pour torrent qui redémarre pas essaye via seedbox manager de le relancer ou sinon
killall --user username rtorrent
rm /home/username/.session/rtorrent.lock
su --command="screen -S username-rtorrent -X quit" username
su --command="screen -dmS username-rtorrent rtorrent" username
Est ce que c'est pile poil quand tu a changé ton .rtorrent.rc que ça a planté?

Je file madame m'attends 😮D

Mon rtorrent fonctionne maintenant
Mais par contre pour l'adaptation je suis une vraie quiche je vais pas y arriver
gormson wrote:Dans ton .rc tu passes en paramètre get_finished_dir c'est normal. C'est le répertoire complet. Donc il te traite la totale.

Il faut lui passer le chemin du fichier qui vient d'être téléchargé avec get_base_path
J'avais ca au début et ca ne marchait pas, j'ai retenté et ca ne remarche pas également... En regardant le log je vois qu'il met en directory le chemin de téléchargement. Mais comme je fais un move dans un répertoire "terminé", alors filebot me dit qu'il n'a rien trouvé à post-processer...

La fin de mon rtorrent.rc :
# Add new method to get finished dir & filebot
system.method.insert = d.get_finished_dir,simple,"cat=/home/kakawette/torrents/,$d.get_custom1="
system.method.set_key = event.download.finished,move_complete,"d.set_directory=$d.get_finished_dir=;execute=mkdir,-p,$d.get_finished_dir=;execute=mv,-u,$d.get_base_path=,$d.get_finished_dir="

# filebot
system.method.set_key = event.download.finished,filebot_amc,"execute={/home/kakawette/.filebot-postprocess,$d.get_base_path=,$d.get_name=,$d.get_custom1=}"
Et le log en mettant get_base_path :
Run script [fn:amc] at [Sun Dec 27 12:08:32 CET 2015]
Parameter: plex = xxxxx
Parameter: unsorted = y
Parameter: seriesFormat = {output}/series/{n}/{n} - {s00e00} - {t}
Parameter: movieFormat = {output}/films/{n} ({y}) - {vf}
Parameter: ut_dir = /home/kakawette/downloading/nom.du.torrent
Parameter: ut_kind = multi
Parameter: ut_title = nom.du.torrent
Parameter: ut_label = series
No files selected for processing
Failure (°_°)
Comme je le dis, il me met en dir : /home/kakawette/downloading alors que ca devrait être /home/kakawette/torrents/series (repertoire ou mon rtorrent.rc l'envoie).

Une solution ?


EDIT : bon en fait j'ai fait plus simple, j'ai viré le déplacement de torrents une fois complétés. Ca me servait pour le post process de Sickrage, mais vu que je ne l'utilise plus je n'en ai plus besoin.
Du coup tout marche.
Par contre existe t-il une option pour envoyer une notification Pushover ou Pushbullet une fois le traitement filebot terminé ?
Oui ca existe regarde sur le site du soft c'est expliqué Perso j'utilise pushover et ça fonctionne au poil.
gormson wrote:Oui ca existe regarde sur le site du soft c'est expliqué Perso j'utilise pushover et ça fonctionne au poil.
Effectivement un simple --def pushover:userkey fonctionne très bien.
Seul bémol : on ne peut pas éditer (ou alors je n'ai pas trouver malgré ma recherche) le message...
Je n'avais pas trouvé non plus mais le message de base était pas mal je trouve...
Il fera l'affaire J'aurais aimé pouvoir avoir le chemin/nom de sortie.
Petite question sur les modes de "copie" de FileBot :
J'utilise pour le moment le symlink, car étant sur un dédié je ne veux pas copier le média et ainsi prendre 2 fois plus de place... Ca marche bien, mais si je supprime le torrent, alors le lien symbolique est toujours présent (je n'ai pas mis vos script de nettoyage) mais ne permet plus de lire le média qui a été supprimé. C'est juste un lien vide quoi.

Y a t-il une méthode (hardlink ?? quelles différences ?) qui permettrait de faire en sorte que si je supprime le média d'un coté, alors le raccourci que j'avais créé à gauche devienne le média complet ?

Je sais pas si j'ai été clair... si pas le cas dites moi
Si tu utilises les symlinks alors oui si tu supprimes le fichier source, le lien pointe vers rien...
pour nettoyer les symlinks vides, filebot s'en charge avec la fonction cleaner (voir les scripts plus haut)
Les hardlinks sont différents, si tu supprime la donnée source, alors les données sont toujours liées au lien que tu as créé. Du coup pour la suppression c'est plus chichi, c'est pour ça que j'avais créé un script exprès (voir plus haut).

Donc pour faire ce que tu veux, il faut que tu utilises les hardlinks.

Perso ma structure est la suivante :
- rtorrent télécharge dans le dossier torrents
- lorsque le dl est terminé, un symlink est créé dans le dossier termines/vrac
- filebot renome et créé un hardlink dans termines/movie ou termines/series suivant le cas.

Voilà...
Ok merci. Juste une dernière question : quelle est l'utilité de ton symlink en plus du hardlink ?
un mois plus tard
gormson wrote:Si tu joues avec les étiquette de rutorrent en modifiant le script de post process tu peut traiter différemment les vidéo et du coup choisir un dossier de stockage distinct.
Regarde dans mes message précédent j'avais détaillé le fonctionnement en expliquant les paramètres à donner à filebot.

hello!!! le problème c'est que je ne peut pas utiliser autotool de rutorrent , je lance les .torrent en glisser déposer, y a t'il un autre moyen que filebot range tous seul dans des dossiers différents les fichiers en vost et les vf ..merci
Dans ton dossier watch si tu crée une arbo elle sera répliqué une fois téléchargé. Du coup en utilisant les étiquettes auto en fonction du dossier d'autotools tu pourras utiliser la méthode que j'ai décris ci dessus.
gormson wrote:Dans ton dossier watch si tu crée une arbo elle sera répliqué une fois téléchargé. Du coup en utilisant les étiquettes auto en fonction du dossier d'autotools tu pourras utiliser la méthode que j'ai décris ci dessus. 😮D
oui sa j'avais compris, mais les fichier .torrent tu les mais comment dans le dossier watch et dans le sous dossier exemple "films" faut passer en ftp a chaque foi ??
Attends je pige plus. Si tu utilise un dossier watch c'est pour y déposer des fichiers donc oui plutôt en ftp ou via sickrage ou autre. Perso je ne l'utilise pas cette fonction c'est peu fiable je trouve.
Donc pour récapituler Perso quand je charge un torrent je le met dans un dossier puis etiquette auto puis renommante auto.
Pour le dossier watch c'est le même principe. Donc même avec du glisser déposer tu peux le faire dans des dossiers distincts.
gormson wrote:Attends je pige plus. Si tu utilise un dossier watch c'est pour y déposer des fichiers donc oui plutôt en ftp ou via sickrage ou autre. Perso je ne l'utilise pas cette fonction c'est peu fiable je trouve.
Donc pour récapituler Perso quand je charge un torrent je le met dans un dossier puis etiquette auto puis renommante auto.
Pour le dossier watch c'est le même principe. Donc même avec du glisser déposer tu peux le faire dans des dossiers distincts.

dsl je pense que je m'explique mal.
Justement, je n'utilise pas le dosier Watch. Je fait juste glisser mes torrents sur l'interface web de rutorent
grace au pluggin FileDrop , car sur mon serveur dedié passer par du ftp. C'est trop compliqué pour certains.
Donc pour revenir au problème , filebot me range deja les liens symboliques dans les dossier films serie, manga (et encore c'est aléatoire) et je voulais savoir si c'etais possible de modifier filebot pour qu'il me range les vost et les vf dans des dossier différents? Je me dit quil arrive bien a me détecter les films et serie sans dossier Watch alors pourquoi pas dautre ..
Oukayyyyyyyy je vois.
Alors de mémoire, et je dis bien de mémoire, tu ne peux définir que des traitements en fonction du type de média (tv, movie, anime). le plus simple étant de le passer au script via son Label.

Ce que tu demandes va un peu plus loin puisque tu veux séparer à nouveau les "tv" en 2 groupes.

Perso, pour pas se prendre la tête je dirais qu'il vaut mieux :
- Créer des dossiers dans ton répertoire de téléchargement (movies, series vf, series vo, trucmuch)
- charger tes fichiers via l'interface rutorrent (bouton "Ajouter un torrent") en déposant les fichiers dans les bons dossiers
- profiter d'autotools pour ajouter des étiquettes auto en fonction du répertoire de dl
- modifier le script de post-process pour qu'il traite différemment les fichiers suivant leur étiquette et donc créer les symlinks aux bon endroits

Perso, même si un peu compliqué, je pense que c'est le plus simple et directe sans trop se prendre la tête, en tout cas j'utilise ce principe.

Exemple de fichier post-process dans mon cas, je te laisse comprendre les différences qui se situent au niveau du dossier vers lequel les fichiers sont renommés...

Après, je me trompe peut être mais il faudrait refaire un tour sur le fofo de filebot, l'auteur répond assez vite en général. même s'il n'est pas toujours agréable lol
#!/bin/bash
TORRENT_PATH=$1
TORRENT_NAME=$2
TORRENT_LABEL=$3

UTILISATEUR="gormson"

if [ $TORRENT_LABEL = "tv_vo" ]
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 pushover=xxx plex=localhost:xxx 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=tv" &

elif [ $TORRENT_LABEL = "tv_vf" ]
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 pushover=xxx plex=localhost:xxx unsorted=y "seriesFormat={output}/tv_vf/{n}/{n} - {s00e00}" "movieFormat={output}/movie/{n} ({y})" "ut_dir=$TORRENT_PATH" "ut_kind=multi" "ut_title=$TORRENT_NAME" "ut_label=tv" &

elif [ $TORRENT_LABEL = "movie_hd" ]
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 pushover=xxx plex=localhost:xxx 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=movie" &

elif [ $TORRENT_LABEL = "movie" ]

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 pushover=xxx plex=localhost:xxx unsorted=y "seriesFormat={output}/tv/{n}/{n} - {s00e00}" "movieFormat={output}/movie_sd/{n} ({y})" "ut_dir=$TORRENT_PATH" "ut_kind=multi" "ut_title=$TORRENT_NAME" "ut_label=movie" &

elif [ $TORRENT_LABEL = "kids" ]

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 pushover=xxx plex=localhost:xxx unsorted=y "seriesFormat={output}/tv/{n}/{n} - {s00e00}" "movieFormat={output}/movie_kids/{n} ({y})" "ut_dir=$TORRENT_PATH" "ut_kind=multi" "ut_title=$TORRENT_NAME" "ut_label=movie" &

fi
bonsoir,

Je vais faire le gros boulzor mais je me lance avec mes questions a 2 balles:

Comment savoir que filebot est bien installé et en route ?
Mon Plex a rendu l'âme sur mon serveur de test suite a l'installation de filebot, comment supprimer l'installation proprement ?

Merci
Pour filebot c'est assez simple tu supprime le dossier .filebot de ton home et tu enleves le script dans le .rtorrent.rc
Merci bien; malheureusement Plex est toujours en carafe; je verrais ca plus tard.