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

Bonjour à tous,

Après de nombreuses recherches et de nombreux tests, je viens vers vous afin de peut-être trouver une solution à mon problème 🤔.

J'ai installé rutorrent et filebot sur un nouveau serveur et j'ai un petit soucis pour la suppression des liens symboliques lors de la suppression d'un torrent.
J'ai pourtant mis la même conf et la même version de rutorrent et de filebot sur mon nouveau serveur (sur l'ancien, cela fonctionne correctement).

Dans mon rtorrent.rc j'ai :

method.set_key = event.download.erased,cleaner,"execute={/home/user/.filebot/rtorrent-postprocessdelete}"

Dans mon rtorrent-postprocessdelete :

#!/bin/bash
find -L /home/user/Media/Movies -type l 2>/dev/null -delete
sh /home/user/.filebot/filebot.sh -script fn:cleaner /home/user/Media/Movies/

Après plusieurs test, j'ai validé que lors de la suppression d'un torrent, le script s'exécute bien.
Par contre, le "gros" problème c'est qu'il s'exécute avant que rutorrent ne supprime les fichiers... La fonction "find" ne donne donc pas le résultat voulu puisque le lien n'est pas encore mort...

J'ai testé d'ajouté un "sleep 15" au début du script, mais en faite, rutorrent semble attendre que le script soit fini avant de lancer la suppression (le fichier est supprimé au moins 20 secondes après si je mets un sleep 15).
Si je re-supprime un autre torrent, le script s'exécute et me supprime donc le lien symbolique du torrent supprimé avant, mais pas celui que je viens de supprimer...😑

Bref, j'ai essayé de contourner le problème en ajoutant au début du script un rm des fichiers (grâce aux variables répertoire '$d.base_path=' et nom '$d.name=').
Ainsi, le script donne le résultat voulu ... ou presque lol 😅.
En effet, le soucis c'est si je veux supprimer que le fichier .torrent (juste 'effacer' dans rutorrent et non 'effacer et supprimer les données') ... Le script s'exécute et me supprime les données quand même 😝

Je sais que je pourrais faire une tâche Cron, mais ce n'est pas ce que je cherche (surtout que cela est censé fonctionner, vu que ça marche sur mon ancien serveur...).

Au final, avez vous une idée de pourquoi la suppression des fichiers se fait après que le script du rtorrent.rc se soit exécuté, ou avez vous une solution pour n'exécuter le script que si je souhaite effacer le .torrent et les données ❔❓❔

Version :
rtorrent 0.9.6/0.13.6
ruTorrent 3.8
Filebot portable : 4.7.9
Java : 1.8.0_171

Merci d'avance pour votre aide (et d'avoir lu tout mon discours 😂)
😗

    quelqu'un avait donné la soluce dans ce long sujet, donc je te poste un copier/coller, à vérifier quand même

    Créer ces deux fichiers en en root :

    nano /home/chemin/rtorrent-postprocessdelete-films

    On y colle :

    #!/bin/bash
    find -L symlink/films -type l 2>/dev/null -delete
    sh /home/chemin/.filebot/filebot.sh -script fn:cleaner /home/clusmi/symlink/films/

    Puis :

    nano /home/chemin/rtorrent-postprocessdelete-series

    On y colle :

    #!/bin/bash
    find -L symlink/series -type l 2>/dev/null -delete
    sh /home/clusmi/.filebot/filebot.sh -script fn:cleaner /home/clusmi/symlink/series/

    Ensuite, on se log sur l'user :

    su XXX

    Puis, on fait un crontab toutes les minutes d'éxécution des deux scripts, donc :

    crontab -e

    et on rajoute a la fin du fichier :

    • sh /home/chemin/rtorrent-postprocessdelete-films >/dev/null 2>&1
    • sh /home/chemin/rtorrent-postprocessdelete-series >/dev/null 2>&1

    Donc, une fois le/les fichiers supprimés de rutorrent, on attends 1 minute, et les scripts suppriment les symlinks qui ne correspondent a aucuns fichiers data.{/quote]

      Lol, merci allan84 😄 Effectivement cette méthode fonctionne ... Mais comme je l'avais précisé :

      Vendetta1985 Je sais que je pourrais faire une tâche Cron, mais ce n'est pas ce que je cherche (surtout que cela est censé fonctionner, vu que ça marche sur mon ancien serveur...).

      L'inconvénient de cette méthode avec la tâche Cron c'est que le script est exécuté toutes les minutes pour rien 😑 ...
      En attendant de réussir à refaire fonctionner la méthode qui consiste à exécuter le script lors de la suppression du torrent et des données (mais après que rtorrent ai effacé les fichiers...), j'utilise cette méthode mais avec un Cron une fois par jour ... ce qui n'est pas vraiment optimal 😅

      15 jours plus tard

      Bonjour à tous,
      Arrivez-vous à faire fonctionner FileBot sur Debian 9, en fin de téléchargement depuis le rtorrent.rc ?

      Edit : Bon finalement ça fonctionne, j’avais écrit rtorrent-postprocess.sh 🙃

      22 jours plus tard

      Bonjour à tous, il semblerait que l'installation ne fonctionne plus ou mal, j'ai beau essayé d'adapter le tuto depuis ce matin, soit je me retrouve avec une erreur dans rutorrent du genre "la liste des torrents ... etc" du à la ligne du .rtorrent.rc :

      system.method.set_key=event.download.finished,filebot_amc,"execute={/home/<username>/rtorrent-postprocess,$d.get_base_path=,$d.get_name=,$d.get_custom1=}"
      

      System.method.set_key "command do not exist"

      J'ai lu ici dans ce fil qu'en enlevant "system" cela fonctionnait mais sans succès.

      Donc si quelqu'un sait comment installer filebot avec :

      Je continue ma galère en tout cas et reviens vers vous si j'avance.

      ++ et merci

      Edit 1 : Première erreur dans rutorrent :

      Lien incorrect avec rTorrent. Vérifier qu'il est bien en cours d'exécution. Vérifier la configuration de $scgi_port et de $scgi_host dans config.php et scgi_port dans le fichier de configuration de rTorrent.

      J'ai essayé de redémarrer rutorrent mais rien n'y fait, l'erreur vient de là :

      su user
      rtorrent
      rtorrent: Error in option file: ~/.rtorrent.rc:21: Command "system.method.set_key" does not exist.
      
      

      .rtorrent.rc

      network.scgi.open_port = 127.0.0.1:5001
      encoding.add = UTF-8
      network.port_range.set = 45000-65000
      network.port_random.set = no
      pieces.hash.on_completion.set = no
      directory.default.set = /home/alex/torrents
      session.path.set = /home/alex/.session
      protocol.encryption.set = allow_incoming, try_outgoing, enable_retry
      schedule2 = watch_directory,1,1,load.start=/home/alex/watch/*.torrent
      schedule2 = untied_directory,5,5,stop_untied=/home/alex/watch/*.torrent
      schedule2 = espace_disque_insuffisant,1,30,close_low_diskspace=500M
      trackers.use_udp.set = yes
      dht.mode.set = off
      protocol.pex.set = no
      throttle.min_peers.normal.set = 40
      throttle.max_peers.normal.set = 100
      throttle.min_peers.seed.set = 10
      throttle.max_peers.seed.set = 50
      throttle.max_uploads.set = 15
      execute2 = {sh,-c,/usr/bin/php /var/www/rutorrent/php/initplugins.php alex &}
      system.method.set_key=event.download.finished,filebot_amc,"execute={/home/alex/rtorrent-postprocess,$d.get_base_path=,$d.get_name=,$d.get_custom1=}"

      Edit 2 : Bon bah, il semblerait qu'il y ait un soucis avec Java :
      "sh /home/user/rtorrent-postprocess"

      WARNING: An illegal reflective access operation has occurred
      WARNING: Illegal reflective access by org.codehaus.groovy.vmplugin.v7.Java7$1 (file:/home/alex/.filebot/jar/groovy.jar) to constructor java.lang.invoke.MethodHandles$Lookup(java.lang.Class,int)
      WARNING: Please consider reporting this to the maintainers of org.codehaus.groovy.vmplugin.v7.Java7$1
      WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
      WARNING: All illegal access operations will be denied in a future release
      Run script [fn:amc] at [Sat Aug 25 19:21:55 CEST 2018]
      Parameter: music = y
      Parameter: artwork = n
      Parameter: plex = *****
      Parameter: ut_dir = 
      Parameter: ut_kind = multi
      Parameter: ut_title = 
      Parameter: ut_label = 
      LicenseError: UNREGISTERED
      Illegal usage: no input
      Failure (°_°)
      

      Edit 3 :

      Dear Linux user, root,
      
      FileBot currently only officially supports Windows 10 and macOS because these platforms make it easy to sell FileBot via their respective app stores. Unfortunately, selling software on Ubuntu, Debian, Red Hat, SUSE, Synology NAS, QNAP NAS, etc is not as easy and not really worth the effort considering the small number of users willing to support the project. This Patreon is an experiment to see how many users are willing to financially contribute towards freely available donation-supported new releases on these platforms.
      
      Please support FileBot for Linux with a pledge of $1 per release on Patreon:
      
      => https://www.patreon.com/filebot
      
      If every other Linux user were to pledge a small amount of money to the FileBot project, then you could easily fund the project ten times over. Please financially support the software you use and rely on, be it FileBot or any other tool. It's just polite, and it helps the ecosystem.
      
      Thank you,
      The FileBot Team
      

      Ps HS : Comment passer un sujet créé en "Résolu" ?

      Bon bah, on avance après une douzaine de café, et de nombreuses recherches, l'installation de Filebot 4.8.2, avec une license d'utilisation, et java 10 semble ok, cependant un dernier petit message de m****
      😜 continue de me pourrir l'existence :

      sh /home/alex/rtorrent-postprocess

      Résultat :

      Locking /home/alex/.session/amc.log
      Run script [fn:amc] at [Sun Aug 26 08:45:17 CEST 2018]
      Parameter: music = y
      Parameter: artwork = n
      Parameter: plex = *****
      Parameter: ut_dir = 
      Parameter: ut_kind = multi
      Parameter: ut_title = 
      Parameter: ut_label = 
      Illegal usage: no input
      Failure (°_°)
      

      Dans ce fil il règle le problème avec un

      chown -R user:user /home/user/.filebot

      Mais rien n'y fait ...😞😓

      Merci à vous.

        Mantinum il ne manquerai pas un paramètre ?
        sh /home/alex/rtorrent-postprocess /chemin/vers/un/film

          salut spider1163 et merci, effectivement je me suis rendu ce WE de mon erreur, la commande est :

          /home/alex/rtorrent-postprocess /home/alex/torrents/

          Cependant je me permets de reposter mon rtorrent.rc et mon rtorrent-postprocess car Filebot ne se lance qu'en manuel, et pas en automatique, rtorrent ne semble pas appeler le script :

          scgi_port = 127.0.0.1:5001
          encoding_list = UTF-8
          port_range = 45000-65000
          port_random = no
          check_hash = no
          directory = /home/alex/torrents
          session = /home/alex/.session
          encryption = allow_incoming, try_outgoing, enable_retry
          schedule = watch_directory,1,1,"load.start=/home/alex/watch/*.torrent"
          schedule = untied_directory,5,5,"stop_untied=/home/alex/watch/*.torrent"
          schedule = espace_disque_insuffisant,1,30,close_low_diskspace=500M
          trackers.use_udp.set = yes
          dht = off
          protocol.pex.set = no
          min_peers = 40
          max_peers = 100
          min_peers_seed = 10
          max_peers_seed = 50
          max_uploads = 15
          execute = {sh,-c,/usr/bin/php /var/www/rutorrent/php/initplugins.php alex &}
          method.set_key=event.download.finished,filebot_amc,"execute={'/home/alex//rtorrent-postprocess.sh',$d.base_path=,$d.name=,$d.custom1=}"
          #!/bin/bash
          
          TORRENT_PATH=$1
          TORRENT_NAME=$2
          TORRENT_LABEL=$3
          
          sh /home/alex/.filebot/filebot.sh --lang fr -script fn:amc --output "/home/alex/Media" --log-file "/home/alex/.session/amc.log" --action symlink --conflict override -non-strict --def music=y artwork=y "u$
          

          Voilà les droits aprés un chmod -R :

          ls -all /home/alex/Media
          total 16
          drwxr-xr-x  4 alex alex 4096 août  26 23:35 .
          drwxr-xr-x 10 root alex 4096 août  27 12:05 ..
          drwxr-xr-x 11 alex alex 4096 août  27 00:15 Movies
          drwxr-xr-x  2 alex alex 4096 août  26 23:35 Series

          Si quelqu'un peut voir d'où vient mon erreur, je l'en remercie mille fois par avance.

          Que donne ls -all /home/alex ?

          Il faut vérifier notamment les droits de
          /home/alex/rtorrent-postprocess et /home/alex/.filebot/filebot.sh

          Merci beaucoup pour ton aide voilà le résultat de

          ls -all /home/alex
          total 48
          drwxr-xr-x 10 root alex 4096 août  27 12:05 .
          drwxr-xr-x  3 root root 4096 août  25 22:41 ..
          drwxr-xr-x  2 alex alex 4096 août  25 22:51 .autodl
          drwxr-xr-x  2 alex alex 4096 août  27 05:00 .backup-session
          drwxr-xr-x  5 alex alex 4096 août  26 22:47 .filebot
          drwxr-xr-x  3 alex alex 4096 août  25 22:51 .irssi
          drwxr-xr-x  4 alex alex 4096 août  26 23:35 Media
          -rwxr-xr-x  1 alex alex  356 août  26 23:55 rtorrent-postprocess
          -rw-r--r--  1 alex alex  798 août  27 00:00 .rtorrent.rc
          drwxr-xr-x  2 alex alex 4096 août  27 12:45 .session
          drwxr-xr-x  2 alex alex 4096 août  27 00:05 torrents
          drwxr-xr-x  2 alex alex 4096 août  25 22:50 watch
          

          Cela te semble correct ?

          Edit 1 : Cela peut, peut être nous éclairer :

          /home/alex/.filebot# "$PWD/filebot.sh" -script fn:sysinfo
          FileBot 4.8.2 (r5789)
          JNA Native: 5.2.2
          MediaInfo: 18.05
          7-Zip-JBinding: 9.20
          Chromaprint: java.io.IOException: Cannot run program "fpcalc": error=2, Aucun fichier ou dossier de ce type
          Extended Attributes: OK
          Unicode Filesystem: OK
          Script Bundle: 2018-08-14 (r534)
          Groovy: 2.5.1
          JRE: Java(TM) SE Runtime Environment 1.8.0_181
          JVM: 64-bit Java HotSpot(TM) 64-Bit Server VM
          CPU/MEM: 8 Core / 3 GB Max Memory / 16 MB Used Memory
          OS: Linux (amd64)
          HW: Linux ns3269366 4.9.124-xxxx-std-ipv6-64 #339135 SMP Fri Aug 24 12:16:45 UTC 2018 x86_64 GNU/Linux
          DATA: /home/alex/.filebot/data/root
          Package: TAR
          License: FileBot License P4363019 (Valid-Until: 2019-08-25)
          Done ヾ(@⌒ー⌒@)ノ
          

          Si je ne m'abuse, tu as actuellement :
          method.set_key=event.download.finished,filebot_amc,"execute={'/home/alex//rtorrent-postprocess.sh',$d.base_path=,$d.name=,$d.custom1=}"
          or ton fichier ne porte pas d'extension : rtorrent-postprocess (et il y a un double slash inutile).
          Essaie :
          method.set_key=event.download.finished,filebot_amc,"execute={'/home/alex/rtorrent-postprocess',$d.base_path=,$d.name=,$d.custom1=}"
          Redémarre rtorrent/le serveur toussa

          Si ça persiste, après avoir téléchargé un nouveau film/épisode, envoie la fin du log /home/alex/.session/amc.log qui concerne ce film.

          Note : utilise le pastebin quand c'est trop long
          https://paste.mondedie.fr/

            Merci spider1163 le problème persiste, et je n'ai rien dans mon log vu que apparement rien ne se lance, sauf en manuel :

            https://paste.mondedie.fr/?e251d518d0a645cd#OihCQjwrXRmmcUvmcKi3IxV5kvkTuV1JTcKpC5XroyA=

            En tout cas mille merci de m'aider.

            Edit : J'ai modifié mon rtorrent.rc avec la nouvelle syntaxe également, mais rien à faire le script n'est pas appelé :

            https://paste.mondedie.fr/?bee487c7ac2e5c91#5keSi9joAZpeOkXVdhGzWui7khqoh6K4K27cgWACAH0=

            Le dernier film téléchargé c'est bien "Thor Ragnarok" ?
            On dirait que Filebot s'interrompt car il aurait déjà été traité
            Failed to process [zzz.mkv] because [yyy.mkv] is an exact copy and already exists
            Avais-tu lancé Filebot manuellement sur ce film ?

            "Pirates des Caraïbes" a lui bien été traité

              Salut spider1163 non justement tous les films ont été traités manuellement, automatiquement rtorrent ne semble pas lancer filebot en fin de DL

              J'ai dû mal à trouver l'anomalie ...

              • Un problème de quote mal interprété ? Essaie
                method.set_key=event.download.finished,filebot_amc,"execute={/home/alex/rtorrent-postprocess,$d.base_path=,$d.name=,$d.custom1=}"
              • Un problème avec execute ? Essaie
                method.set_key=event.download.finished,filebot_amc,"execute.throw.bg={/home/alex/rtorrent-postprocess,$d.base_path=,$d.name=,$d.custom1=}"

              Pense bien à redémarrer le serveur après toute modif

                Encore merci spider1163 pour ton temps mais toujours rien, voilà presque une semaine que je galère avec Filebot, je vais récapituler ce que j'ai fait :

                • Installation script Bonobo
                • Installation Java 10 (requis pour la dernière version de Filebot)

                J'ai téléchargé et installé cette version de Filebot (c'est peut être là mon problème) : https://get.filebot.net/filebot/FileBot_4.8.2/FileBot_4.8.2-portable.tar.xz

                Filebot fonctionne manuellement (c'est déjà bon signe) avec cette commande :

                /home/alex/rtorrent-postprocess /home/alex/torrents/

                Mais il ne se lance pas automatiquement à la fin d'un téléchargement rtorrent.
                Voilà mon rtorrent.rc :

                https://paste.mondedie.fr/?28ba563730ac21cb#CLsNPB1NGqZJzuLeT2UpEwy1NPm/CU9xCpKLSvHuxm0=

                Sachant que j'ai tenté quasiment tout ce que j'ai trouvé sur le net pour pour la dernière ligne quote avec et sans '', remplacé filebot_amc par filebot etc ... et rien n'y fait voilà mon postprocess :
                https://paste.mondedie.fr/?a58b5e3b6a553395#Frpv/iHruZazGrZVbdCUlsyFws4jFShoAHIPaqWHFi0=

                En espérant réussir mon challenge 😉

                Le problème ne provient pas de Filebot ni du script postprocess, sinon le lancement manuel ne passerait pas.
                Cela provient donc de la règle du rtorrent.rc

                Voilà le résumé, je sèche alors je passe la main pour le moment ...

                😪😢, tu étais mon dernier espoir 😜, penses tu que le problème puisse venir de rtorrent et qu’une fresh install, sans passer par le script puisse régler quoique ce soit ?

                Non rtorrent fonctionne, je suis quasi sûr que c'est une erreur de syntaxe.

                Dernière piste :
                As-tu ajouté manuellement l'avant-dernière commande
                execute2 = {sh,-c,/usr/bin/php /var/www/rutorrent/php/initplugins.php alex &} ?
                Que se passe-t-il si tu l'enlèves, ainsi que la ligne vide ?

                  Non spider1163 je ne l'avais pas ajouté, mais modifiée pour coller à la nouvelle syntaxe de rtorrent (https://github.com/rakshasa/rtorrent/wiki/rTorrent-0.9-Comprehensive-Command-list-(WIP))
                  , à savoir rajouter le 2 à execute.

                  J'ai testé de supprimer cette ligne et de ne plus sauter de ligne, rien à faire j'ai même essayé de remplacer "execute" par execute2:

                  method.set_key=event.download.finished,filebot_amc,"execute2={/home/alex/rtorrent-postprocess,$d.base_path=,$d.name=,$d.custom1=}"

                  Je suis au bout du gouffre, je ne sais plus où chercher et bloque sur Filebot depuis bientôt une semaine.

                  Enfin, encore merci en tout cas.

                  Edit : Je me demande si mon problème ne vient pas du changement de syntaxe de rtorrent (voir lien plus haut) ou de ça :
                  https://github.com/rakshasa/rtorrent/wiki/RPC-Migration-0.9

                  Edit2 : Un truc bizarre c'est que si je mets "system.method.set_key" au début j'ai l'erreur comme quoi c'est "method.set_key" qu'il faut utiliser, rtorrent "lit" donc bien la commande.