Bon j'avais un peu de temps cette après-midi, j'ai testé le script.
Normalement il fonctionne pour tous les types d'installation rutorrent qui ont un point de montage xmlrpc.
Je fais un petit tuto pour les personnes qui veulent bien tester.
Le script ne risque pas de mettre la pagaille dans vos fichiers, il supprime rien sans vous demander avant 😅

Installation de rtorrent-cleaner

Bon pour commencer il faut php 7 au minimum pour qu'il fonctionne avec 2 extensions (php-bcmath et php-dom)
Les commandes ci-dessous sont correctes pour debian 9
Si vous avez déjà php d'installé, vous pouvez vérifier votre version avec cette commande php -v

Installation de php 7

apt-get install php php-bcmath php-dom

⚠ si php-dom ne fonctionne pas, essayez avec php-xml

Installation de composer pour l'utilisateur root

curl -s https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
chmod +x /usr/local/bin/composer
mkdir /root/.composer && composer install -d /root/.composer
echo 'export PATH="$PATH:/root/.composer/vendor/bin"' >> /root/.bashrc
source /root/.bashrc

Installation de rtorrent-cleaner

composer global require magicalex/rtorrent-cleaner

Utilisation

Il y a deux options importante obligatoire --url-xmlrpc et --home

Un exemple cette commande vous fait un rapport sur les fichiers en trop (généralement mal supprimés par rutorrent, mais aussi les fichiers qui manquent sur les torrents alors qu'ils sont en seed.

rtorrent-cleaner report --url-xmlrpc=https://username:password@domain.tld/URI --home=/home/username/torrents

Cette commande rm supprime les fichiers en trop, elle vous demande confirmation pour chaque fichier
Il existe une option --assume-yes pour supprimer les fichiers en trop sans confirmation.

rtorrent-cleaner rm --url-xmlrpc=https://username:password@domain.tld/URI --home=/home/username/torrents

⚠ Le script peut mettre du temps en fonction de l'url que vous appelez, notamment les urls distantes.
Il faut préférer utiliser http://localhost si votre serveur web vous le permet.
Au pire, Il y a une barre de progression 😁
Si vous avez beaucoup de torrents ça mettre du temps de toute manière 😅

Performance

Pour les personnes qui ont beaucoup de torrent le script peut mettre beaucoup de temps pour récupérer la liste des fichiers via rtorrent. Plusieurs heures apparement pour @kokogakayui
Cela dépend des urls que vous appelez. Une url avec une auth basic + nom de domaine distant.
Exemple https://user:pass@rutorrent.domain.tld/USER cette url pour les personnes qui ont beaucoup de torrent ça risque d'être interminable. Une solution existe, c'est de passer en local. Voici la marche à suivre.

nano /etc/nginx/sites-enabled/cleaner.conf
server {
    listen 127.0.0.1:8888;
    charset utf-8;

    location = /RPC {
        include scgi_params;
        scgi_pass 127.0.0.1:5000;
    }
}

ensuite redémarre nginx

service nginx restart

Par contre il faut bien indiquer le port scgi de votre user rtorrent. ici c'est le port 5000 scgi_pass 127.0.0.1:5000;
Cela va créer un point de montage http://localhost:8888/RPC accessible que en local sur votre serveur.

ensuite

rtorrent-cleaner report --url-xmlrpc=http://localhost:8888/RPC --home=/home/username/torrents -v

ça serait intéressant de voir la différence de temps. Ajoute l'option -v ça ajoute le temps écoulé sur la barre de progression.

Pour moi l'install se passe à priori bien, mais je tombe sur un command not found quand je veux lancer rtorrent-cleaner... Il est censé s'installer où ?

    kokogakayui t'as installé php-bcmath?

    T'as fait quoi exactement?
    tu peux mettre ici le résultat de la commande echo $PATH

    Bon par contre ça me donne ça : The "--url-xmlrcp" option does not exist.
    EDIT : Bon alors pour le PATH, je pense qu'il y avait un souci dans la commande que tu donnes, parce que chez moi en suivant tes instructions ça s'est installé sous
    ~/.composer/vendor/bin
    et pas
    ~/.config/composer/vendor/bin

    Rien de bien méchant. Par contre ouais "The "--url-xmlrcp" option does not exist". J'ai essayé sans le = pour voir mais même résultat.

    Pour info j'ai testé avec plusieurs commandes :
    rtorrent-cleaner report --url-xmlrcp=https://koko:mdp@chezmoi.com/rutorrent --home=/home/username/torrents/music
    rtorrent-cleaner report --url-xmlrcp=https://koko:mdp@localhost:5001 --home=/home/username/torrents/music

    Mais aussi report --xmlrcp https://koko:mdp@localhost:5001 --home=/home/username/torrents/music
    Pour voir si ça venait pas du "="....

      Magicalex haha oui j'ai fini par capter la coquille.

      Bon par contre :
      Avec rtorrent-cleaner report --url-xmlrpc=https://koko:mdp@chezmoi.com/rutorrent --home=/home/username/torrents/music
      ça me donne :
      In Client.php line 234: Not Allowed
      et avec rtorrent-cleaner report --url-xmlrpc=https://koko:mdp@localhost:5001 --home=/home/username/torrents/music
      ça me donne :
      In Socket.php line 332: Unable to enable crypto on TCP connection localhost: make sure the "sslcafile" or "sslcapath" option are properly set for the environment.
      In Socket.php line 303: stream_socket_enable_crypto(): SSL: Success

        kokogakayui

        Alors pour l'option --url-xmlrpc
        pour -> /URI il faut mettre l'uri de votre mount point pour le tuto de @ex_rat générelement c'est le nom de votre utilisateur en majuscule /<USERNAME>

        soit par exemple

        rtorrent-cleaner report --url-xmlrpc=https://koko:mdp@chezmoi.com/KOKO --home=/home/koko/torrents

          Magicalex

          Haha ok. En effet c'est mieux. Ça a l'air de marcher. La barre de progression reste à 0%, mais je te tiens au jus quand ça aura avancé 🙂 Merci à toi encore une fois !

            Magicalex

            Via mon image docker le script s'exécute en 33sec
            via mon serveur web (proxy) 9min

            La différence est énorme...
            ps ma seedbox est sous docker avec l'image de @xataz

              Magicalex
              Sur un dossier de combien de torrents ? La j'ai relancé après update sur un dossier plus petit, mais ça mets quand même une éternité haha. j'en suis à 6%...
              EDIT : en fait je pense même que la taille du dossier n'a rien à voir, mais la quantité de torrents dans rutorrent peut-être... Et la je suis mal haha

                kokogakayui c'est pas le nombre de fichier le problème c'est le nombre de requête à faire.

                J'ai essayé de réduire le nombre de requête vers rtorrent mais quand y a beaucoup de torrents on peut pas faire autrement. Et si l'url de l'option --url-xmlrpc met du temps à répondre à ba ça traine.

                Magicalex

                J'ai volontairement testé avec un dossier qui contient moins de 10 fichiers.... J'en ai plus donc à mon avis c'est de ce côté là que ça traine. J'en suis à 10% là...

                  kokogakayui
                  J'ai une idée que tu peux tester

                  nano /etc/nginx/sites-enabled/cleaner.conf
                  server {
                      listen 127.0.0.1:8888;
                      charset utf-8;
                  
                      location = /RPC {
                          include scgi_params;
                          scgi_pass 127.0.0.1:5000;
                      }
                  }

                  ensuite redémarre nginx

                  service nginx restart

                  Par contre il faut bien indiquer le port scgi de ton user rtorrent ici scgi_pass 127.0.0.1:5000;
                  ça va créer un point de montage http://localhost:8888/RPC accessible que en local sur ton serveur.

                  ensuite

                  rtorrent-cleaner report --url-xmlrpc=http://localhost:8888/RPC --home=/home/koko/torrents -v

                  ça serait intéressant de voir la différence de temps. Ajoute l'option -v ça ajoute le temps écoulé sur la barre de progression.

                    Magicalex
                    Juste excellent comme solution ! Je suis passé de plusieurs heures à 7 minutes. Bien joué !

                    Par contre du coup j'ai essayé de tester sur /torrents/mon-dossier-tracker-que-jutilise-rarement, mais le résultat compare avec l'intégralité de mes torrents, du coup le résultat me sert à rien.

                    Là je viens de relancer sur /torrents tout court... 6 minutes, encore mieux. Par contre pareil, ça me donne quasiment tous mes torrents en missing file, alors que les fichiers en question sont bien là.

                    J'attends ton retour 🙂

                      kokogakayui t'as pas eu de bug? sinon faudrait demander à @ex_rat si il veut bien rajouter ce vhost dans son script.

                      Faudrait que je trouve une solution pour faire sans mais c'est pas évident. Le mieux serait de passer directement par scgi mais j'ai rien trouvé pour communiquer directement en php...

                      kokogakayui Ah ouais c'est curieux ton résultat...

                      t'as une config particulière? tu compares bien avec le dossier ou rtorrent télécharge les fichiers?

                      c'est quoi la commande que tu as lancé? il affiche bien tous tes torrents? tu as plusieurs utilisateurs?

                      edit: je pense que tu te trompe de home tu as bien mis --home=/home/<utilisateur>/torrents ?
                      si tu peux mettre la commande que tu as exécuté ici