• Docker
  • Maintien d'une image docker rutorrent pour la communauté mondedie

Coucou,

J'ai voulu essayer de pull l image sur arm et j obtient le message suivant :
$ docker pull mondedie/rutorrent:filebot
filebot: Pulling from mondedie/rutorrent
no matching manifest for linux/arm/v8 in the manifest list entries

Si quelqu'un a une idée ?

    Hello
    Image en prod
    Filebot marche bien, grace au fichier args_amc.txt j ai pu personnaliser et recevoir mes notifications mail>
    bref que du bonheur.
    Je voulais personaliser les scripts postdl et postrm mais je viens de voir qu ils ne sont pas dans des repertoires accessibles. pourquoi les avoir mis dans /usr/local et pas dans /config ? y a des contraintes ?
    je voulais juste les adapter, du coup je vais modifier .rtorrent.rc pour pointer vers d autres scripts, c est pas l ideal

    en tout cas gros merci pour l image

      hello
      de nouveau moi apres quelques tests supplementaires
      je vous partage ce que j ai constaste (qui est peut etre normal mais j en doute)
      lors de tests et toujours pour personnaliser mon container, j ai a un moment donne efface le fichier amc.excludes.
      Jusque la rien de grave me direz vous.
      La ou j ai ete surpris c est lorsque j ai relance un DL et que ce dernier s est termine : filebot a procede a tout le renommage de mes fichiers dans downloads et non uniquement le torrent qui venait de se finir. Comme si les parametres de postdl n etaient pas pris en compte.
      Bref normal ou petit souci?
      En soit c est pas genant dans le sens ou en theorie tu n effaces pas ce ficher mais je me dis que lorsque le fichier comportera des cetaines de lignes ca va commencer a ralentir le traitement, non?

      a+

        Magicalex
        du coup je suis un peu perdu sur le role de --def ut_dir="${TORRENT_PATH}" et --def ut_title="${TORRENT_NAME}"
        Le but de ces options n est il pas de traiter le fichier renseigne par ${TORRENT_PATH} et ${TORRENT_NAME} ???

        Je prends en exemple ce petit script que je me suis fait:

        #!/bin/bash
        echo "chemin du fichier à renommer:"
        read TORRENT_PATH
        /home/.filebot/filebot.sh --lang fr -script fn:amc --output "/home/Media" --action symlink --conflict override -non-strict --def tmdbTV=y unsorted=y "ut_dir=$TORRENT_PATH"

        La variable $TORRENT_PATH renseigne bien filebot sur le fichier a traiter et il ne traite que celui la et aucunement les autres du repertoire ( et pas de fichier qui inventorie les fichiers a exclure).

          christophebe Pour que le script soit dans un PATH et que l'on puisse exécuter le script comme une commande normale.

          Je vois pas trop ce que tu veux personnaliser dans les deux scripts.

          christophebe du coup je suis un peu perdu sur le role de --def ut_dir="${TORRENT_PATH}" et --def ut_title="${TORRENT_NAME}"
          Le but de ces options n est il pas de traiter le fichier renseigne par ${TORRENT_PATH} et ${TORRENT_NAME} ???

          Non, je t'invite à lire le script pour plus d'info sur comment fonctionne le script de filebot. Il semblerait que ut_title ne soit là que pour les notifications.

          christophebe La variable $TORRENT_PATH renseigne bien filebot sur le fichier a traiter et il ne traite que celui la et aucunement les autres du repertoire ( et pas de fichier qui inventorie les fichiers a exclure).

          Non plus, elle renseigne sur le dossier à traiter.

            Magicalex
            Desole, j insiste mais apres tests (via mon petit script, via le container de xataz):
            la variable $TORRENT_PATH renseigne bien filebot sur le fichier a traiter (que ce soit un fichier ou un repertoire) et il ne traite que celui la et aucunement les autres du repertoires ou fichiers.
            Donc dans ton script postdl, tes variables ne sont pas interpretees et donc ne sont pas utiles.

              christophebe Et bien non. Ce n'est que des dossiers qui sont passés en paramètre. Le nom de la variable est très explicite. ut_dir dir pour directory

              Si tu lances le script
              docker exec -it rutorrent postdl /data/downloads nimportequoi.mkv

              Tu verras que le script amc va check tous les fichiers si tu as supprimé le cache avant.

              Hello,
              Aller on poursuit le sujet de bon matin et de bonne humeur.
              Etant arrivé tôt au boulot, j'ai fouiné sur le site de filebot et suis allé à la pêche aux infos.
              J'ai trouvé un topic qui aborde le point ut_dir et surtout avec une réponse de Rednoah le concepteur de filebot:
              Discussion sur le forum filebot

              qBT will replace %F with the input folder/file of the completed download and call FileBot on that:

              --def "ut_dir=%F"_

              If you pass your entire Downloads folder as input folder every time, then you will end up processing incomplete downloads A, B and C after D is finished and triggers filebot.

              Du coup voilà ce que je comprends:
              rtorrent renvoie le nom du torrent que l'on stocke dans la variable TORRENT_PATH
              ensuite on lance filebot avec en paramètre ut_dir=$TORRENT_PATH
              Alors filebot est censé traiter uniquement le torrent qui vient de se terminer.
              Cela permet d'éviter le traitement de fichiers qui seraient encore en cours de téléchargement.

              Ce que j'ai pu retester ce matin sur le container de la communauté, c'est que le paramètre ut_dir ne s'applique pas et donc systématiquement tout le répertoire downloads est retraité (en excluant tous les torrents référencés dans le fichier amc_exclude).
              En soit ce n'est pas bien grave, même dans le cas suivant:
              imaginons que l'on lance 2 downloads, 1 se finit rapidement , le 2ieme prend 1 journée
              lorsque le 1ier se finit, filebot traite alors le torrent 1 (celui fini) et le torrent 2 (celui en cours de download)
              et il vient ensuite renseigné ces 2 torrents dans le fichier amc_exclude.
              Le 2ieme torrent se finit plus tard, filebot se lance mais comme le torrent 2 est référencé dans amc_exclude , aucune action n'est effectuée.
              la problématique que je vois c'est que l'on crée un symlink sur un fichier non fini et donc si tu es un peu impatient et que tu veux accéder au fichier via ton symlink tu vas avoir une mauvaise surprise.

              Du coup j'ai regardé le script postdl (je suis très loin d'être un expert et mes compétences en scripting sont très limitées) pour essayer de voir pourquoi le paramètre ut_dir ne s'applique pas.

              le début me semble bon:

              TORRENT_PATH="$1"

              par contre ici j'ai quelques doutes:

              --def ut_dir="${TORRENT_PATH}"

              est ce que ce ne devrait pas plutot être:

              --def ut_dir=$TORRENT_PATH
              ou

              --def "ut_dir=$TORRENT_PATH"

              Après comme je le disais je ne suis pas très doué et ne sais pas si les {....} ou mettre les "..." à cet endroit impactent ou pas. Mais c'est la seule dfférence que je vois avec le script de xataz (pour lequel je trouve le résultat souhaité et expliqué par Rednoah).

              a+

                christophebe alors "${TORRENT_PATH}" passe bien. C'est la syntaxe qui est recommandé.

                Tu accordes trop de valeur à la variable TORRENT_PATH. Cette variable provient de la commande $d.directory= via xmlrpc.
                Et la commande d.directory me renvoie la plupart du temps le dossier /data/downloads

                Pour faire ce que tu veux il faudrait concaténer les variables et donc avoir le dossier du torrent en particulier, il faudrait faire ça.

                FULL_PATH="${TORRENT_PATH}/${TORRENT_NAME}"

                Le problème avec cette solution c'est que ça ne renvoie pas toujours un dossier mais aussi parfois un fichier.
                Et si on donne un fichier à filebot il plante. Donc on revient au problème initiale.

                Donc le mieux que l'on pourrait éventuellement faire serait de passer le dossier du torrent quand il existe.

                #!/usr/bin/env sh
                
                TORRENT_PATH="${1}"
                TORRENT_NAME="${2}"
                
                if [ -d "${TORRENT_PATH}/${TORRENT_NAME}" ]; then
                  FULL_PATH="${TORRENT_PATH}/${TORRENT_NAME}"
                else
                  FULL_PATH="${TORRENT_PATH}"
                fi
                
                /filebot/filebot.sh \
                  --lang "${FILEBOT_LANG}" \
                  -script fn:amc \
                  --output "/data/media" \
                  --action "${FILEBOT_RENAME_METHOD}" \
                  --conflict "${FILEBOT_CONFLICT}" \
                  -non-strict \
                  --log-file /tmp/filebot-amc.log \
                  --def @/filebot/args_amc.txt \
                  --def ut_dir="${FULL_PATH}" \
                  --def ut_title="${TORRENT_NAME}" 2>> /tmp/filebot-error.log

                Mais sinon mon script fonctionne exactement de la même manière que celui de xataz.

                Ok, j'ai bien pris note.
                Un grand merci d'avoir creusé le sujet et d'avoir pris le temps de éclairer.

                a+

                Chris.

                  christophebe Donc au final ça ne change pas grand chose si on passe que cette variable à filebot TORRENT_PATH
                  Le principale c'est que avec cette variable filebot se débrouille toujours.

                  popov_2 Je demandais sur quel machine tu veux l'installer pas l'architecture. je me doute bien que c'est aarch64. C'est pas grave normalement tu peux réessayer ça fonctionne.

                  spider1163 Cyprien J'ai poussé une modification. Maintenant on peut ajouter une authentification basic.
                  Je vous invite à lire le readme pour mettre en place l'authentification. https://github.com/mondediefr/docker-rutorrent#add-http-authentication
                  J'ai mis dans l'image un petit utilitaire pour générer un fichier avec le mot de passe gen-http-passwd

                  Parfait @Magicalex ! Merci ! Par contre c'est possible de faire un ajout de ligne avec ">>" au lieu de ">" lors de l'ajout d'un utilisateur via openssl ?
                  echo "${username}:${passwd}" >> /config/nginx/passwd/rutorrent_passwd

                  Ça permet d'avoir plusieurs accès pour la même instance: ça peut paraître inutile mais j'ai pas forcément envie de partager mon mot de passe avec quelqu'un d'autre XD.

                    Cyprien J'ai fait une petite maj hier soir et je viens de pousser un fix.

                    Maintenant le script gen-http-passwd peut créer un mot de passe pour un utilisateur mais on peut aussi changer un mot de passe pour un utilisateur qui existe déjà.

                      5 jours plus tard

                      Magicalex Hello,
                      encore l'emmerdeur et je pense que tu dois te dire qu'est ce qu'il me les casse avec son filebot et le traitement des fichiers.
                      J'ai poursuivi mon investigation car je ne comprenais pas pourquoi le container de xataz ne se comportait pas de la meme maniere que le tien au niveau du script postdl.
                      Et je pense avoir trouve la difference qui explique le comportement different: les variables renvoyees par rtorrent au script.
                      Xataz recupere les variables d.get_base_path ,d.get_name, d.get_custom1 -> transforme en d.base_path d.name et d.custom1 depuis la verison 0.9.2
                      de ton cote tu recuperes d.directory ,d.name
                      On oublie la variable custom qui est pour le label.
                      On va faire un focus sur la variable d.base_path qui te renvoie lorsque le telechargement est fini le chemin complet du fichier ou repertoire telecharge (media/downloads/fichier.mkv ou media/downloads/repertoirefilm/) la ou d.directory te renvoie le repertoire media/downloads/
                      Du coup en ajoutant au script filebot ut_kind=multi, filebot traite ut_dir comme un repertoire ou fichier et du coup il ne s occupe que du fichier/repertoire concerne et non plus du repertoire media/downloads au complet (si on efface amc_exclude... evidemment).
                      J'ai teste et du coup c est 100% fonctionnel.
                      Voila la difference entre l'implementation de xataz et la tienne. Apres tout depend de ton cas d'usage, l'important est la finalite et souvent peu importe le moyen. Mais bon je voulais comprendre pourquoi cela fonctionnait differemment.

                      desole pour l'absence des accents, je suis sur un clavier qwerty aujourd'hui

                      Merci encore pour le boulot fourni

                      a+