Vous aimez cette application ? Merci de lui avoir donné un ⭐️
Décluttar
Table des matières
- Aperçu
- Dépendances, astuces et FAQ
- Commencer
- Explication des paramètres
- Crédits
- Clause de non-responsabilité
Aperçu
Decluttarr maintient la file d'attente radarr & sonarr & lidarr & readarr & whisparr exempte de téléchargements bloqués/redondants
Aperçu des fonctionnalités :
- Supprimez automatiquement les téléchargements bloqués lors du téléchargement des métadonnées (et déclenchez le téléchargement à partir d'une autre source)
- Supprimer automatiquement les téléchargements ayant échoué (et déclencher le téléchargement à partir d'une autre source)
- Supprimez automatiquement les téléchargements appartenant à radarr/sonarr/etc. éléments qui ont été supprimés entre-temps (« Téléchargements orphelins »)
- Supprimez automatiquement les téléchargements bloqués, une fois qu'ils se sont avérés bloqués plusieurs fois de suite (et déclenchez le téléchargement à partir d'une autre source)
- Supprimez automatiquement les téléchargements lents après qu'ils se soient révélés lents plusieurs fois de suite (et déclenchez le téléchargement à partir d'une autre source)
- Supprimez automatiquement les téléchargements appartenant à radarr/sonarr/etc. éléments non surveillés
- Supprimer automatiquement les téléchargements dont l'importation a échoué car il ne s'agit pas d'une mise à niveau de format (c'est-à-dire qu'une meilleure version est déjà présente)
Vous pouvez l'exécuter localement en lançant main.py ou en extrayant l'image du docker. Vous pouvez trouver un exemple de docker-compose.yml dans le dossier docker.
Dépendances, astuces et FAQ
- Utilisez Sonarr v4 et Radarr v5 (actuellement la balise « nocturne » au lieu de « dernière »), sinon certaines fonctionnalités pourraient ne pas fonctionner correctement.
- qBittorrent est recommandé mais pas obligatoire. Si vous n'utilisez pas qBittorrent, vous rencontrerez les limitations suivantes :
- Lors de la détection de téléchargements lents, les vitesses fournies par les applications *arr seront utilisées, ce qui est moins précis que ce que qBittorrent renvoie lorsqu'il est interrogé directement.
- La fonctionnalité qui permet de protéger les téléchargements contre la suppression (NO_STALLED_REMOVAL_QBIT_TAG) ne fonctionne pas
- La fonctionnalité qui ignore les trackers privés ne fonctionne pas
- Si vous voyez des erreurs étranges telles que « trouvé 10/3 fois », pensez à activer le paramètre « Rejeter les hachages torrent sur liste bloquée lors de la saisie ». Sur Radarr/Sonarr/Readarr/Lidarr/Whisparr nocturne, l'option se trouve sous paramètres/indexeurs dans les options avancées de chaque indexeur, sur Prowlarr, elle se trouve sous paramètres/applications puis dans les paramètres avancés de l'application respective.
- Lorsque des torrents cassés sont supprimés, les fichiers qui leur appartiennent sont supprimés
- Pour tous les types de suppression : un nouveau téléchargement provenant d'une autre source est automatiquement ajouté par radarr/sonarr/lidarr/readarr/whisparr (si disponible)
- Si vous utilisez qBittorrent et qu'aucun de vos torrents n'est supprimé et que les journaux détaillés indiquent que tous les torrents sont protégés par NO_STALLED_REMOVAL_QBIT_TAG même s'ils ne le sont pas, vous utilisez peut-être une version de qBittorrent qui a des problèmes avec les appels API et vous voudrez peut-être envisager de changer. vers une autre image qBit (voir #56)
- Actuellement, les applications « *Arr » ne sont prises en charge qu'en anglais. Reportez-vous au numéro 132 pour plus de détails
- Si vous rencontrez des problèmes avec yaml, veuillez vérifier les problèmes résolus. Il existe différentes notations, et il se peut très bien que le problème que vous avez trouvé ait déjà été résolu dans l'un des problèmes. Une fois que vous avez compris votre problème, n'hésitez pas à poster votre yaml pour aider les autres ici : #173
- declutarr ne prend en charge que les instances radarr/sonarr uniques. Si vous avez plusieurs instances de ces *arrs, la solution consiste également à exécuter plusieurs decluclutarrs.
Commencer
Il y a deux façons d'exécuter ceci :
- En tant que conteneur Docker avec Docker-compose
- En clonant le référentiel et en exécutant le script manuellement
Les deux méthodes sont expliquées ci-dessous et il y a une explication des différents paramètres ci-dessous.
Méthode 1 : Docker
- Créer un fichier
docker-compose.yml
- Utilisez ce qui suit comme base pour cela et ajustez les paramètres en fonction de vos besoins
version: "3.3"
services:
decluttarr:
image: ghcr.io/manimatter/decluttarr:latest
container_name: decluttarr
restart: always
environment:
TZ=Europe/Zurich
PUID=1000
PGID=1000
## General
# TEST_RUN=True
# SSL_VERIFICATION=False
LOG_LEVEL: INFO
## Features
REMOVE_TIMER: 10
REMOVE_FAILED: True
REMOVE_FAILED_IMPORTS: True
REMOVE_METADATA_MISSING: True
REMOVE_MISSING_FILES: True
REMOVE_ORPHANS: True
REMOVE_SLOW: True
REMOVE_STALLED: True
REMOVE_UNMONITORED: True
RUN_PERIODIC_RESCANS: '
{
"SONARR": {"MISSING": true, "CUTOFF_UNMET": true, "MAX_CONCURRENT_SCANS": 3, "MIN_DAYS_BEFORE_RESCAN": 7},
"RADARR": {"MISSING": true, "CUTOFF_UNMET": true, "MAX_CONCURRENT_SCANS": 3, "MIN_DAYS_BEFORE_RESCAN": 7}
}'
# Feature Settings
PERMITTED_ATTEMPTS: 3
NO_STALLED_REMOVAL_QBIT_TAG: Don't Kill
REMOVE_SLOW: True
MIN_DOWNLOAD_SPEED: 100
FAILED_IMPORT_MESSAGE_PATTERNS: '
[
"Not a Custom Format upgrade for existing",
"Not an upgrade for existing"
]'
## Radarr
RADARR_URL: http://radarr:7878
RADARR_KEY: $RADARR_API_KEY
## Sonarr
SONARR_URL: http://sonarr:8989
SONARR_KEY: $SONARR_API_KEY
## Lidarr
LIDARR_URL=http://lidarr:8686
LIDARR_KEY=$LIDARR_API_KEY
## Readarr
READARR_URL=http://readarr:8787
READARR_KEY=$READARR_API_KEY
## Whisparr
WHISPARR_URL=http://whisparr:6969
WHISPARR_KEY=$WHISPARR_API_KEY
## qBitorrent
QBITTORRENT_URL: http://qbittorrent:8080
# QBITTORRENT_USERNAME=Your name
# QBITTORRENT_PASSWORD=Your password
- Exécutez
docker-compose up -d
dans le répertoire où se trouve le fichier pour créer le conteneur Docker. Remarque : extrayez toujours la " dernière " version. La version "dev" est uniquement destinée aux tests et ne doit être extraite que lors de la contribution au code ou de la prise en charge de corrections de bugs.
Méthode 2 : exécution manuelle
- Clonez le référentiel avec
git clone -b main https://github.com/ManiMatter/decluttarr.git
- Renommez le
config.conf-Example
dans le dossier de configuration en config.conf
- Adaptez
config.conf
à vos besoins - Installez les bibliothèques répertoriées dans le docker/requirements.txt (pip install -r Requirements.txt)
- Exécutez le script avec
python3 main.py
Remarque : le config.conf
est ignoré lors de l'exécution via docker-compose.yml
Explication des paramètres
Paramètres généraux
Configure le comportement général de l'application (sur toutes les fonctionnalités)
LOG_LEVEL
- Définit le niveau auquel la journalisation aura lieu
-
INFO
affichera uniquement les modifications appliquées à radarr/sonarr/lidarr/readarr/whisparr -
VERBOSE
montre chaque vérification en cours même si aucun changement n'est appliqué -
DEBUG
affiche des informations très granulaires, uniquement requises pour le débogage - Type : chaîne
- Valeurs autorisées : CRITIQUE, ERREUR, AVERTISSEMENT, INFO, VERBOSE, DEBUG
- Est obligatoire : non (par défaut : INFO)
TEST_RUN
- Vous permet d’essayer cet outil en toute sécurité. S'ils sont actifs, les téléchargements ne seront pas supprimés
- Type : Booléen
- Valeurs autorisées : vrai, faux
- Est obligatoire : non (par défaut : False)
VÉRIFICATION_SSL
- Active ou désactive la vérification du certificat SSL pour tous les appels API
-
True
signifie que la vérification du certificat SSL est activée - Avertissement : Il est important de noter que la désactivation de la vérification SSL peut avoir des implications en matière de sécurité, car elle rend le système vulnérable aux attaques de l'homme du milieu. Cela ne doit être fait que dans un environnement contrôlé et sécurisé où les risques sont bien compris et atténués.
- Type : Booléen
- Valeurs autorisées : vrai, faux
- Est obligatoire : Non (Vrai par défaut)
Paramètres des fonctionnalités
Indique quel type de nettoyage est appliqué à la file d'attente des téléchargements
REMOVE_TIMER
- Définit la fréquence à laquelle la file d'attente est vérifiée pour les téléchargements orphelins et bloqués.
- Type : Entier
- Unité : Minutes
- Est obligatoire : Non (10 par défaut)
REMOVE_FAILED
- Indique si les téléchargements ayant échoué sans connexion sont supprimés de la file d'attente
- Ces téléchargements ne sont pas ajoutés à la liste de blocage - Un nouveau téléchargement provenant d'une autre source est automatiquement ajouté par radarr/sonarr/lidarr/readarr/whisparr (si disponible)
- Type : Booléen
- Valeurs autorisées : vrai, faux
- Est obligatoire : non (par défaut : False)
REMOVE_FAILED_IMPORTS
- Indique si les téléchargements dont l'importation a échoué sont supprimés de la file d'attente
- Cela peut arriver, par exemple, lorsqu'une meilleure version est déjà présente
- Remarque : Ne considère qu'une importation a échoué si le message d'importation contient un avertissement répertorié sur FAILED_IMPORT_MESSAGE_PATTERNS (voir ci-dessous).
- Ces téléchargements sont ajoutés à la liste de blocage
- Si le paramètre IGNORE_PRIVATE_TRACKERS est vrai et que le torrent concerné est un tracker privé, l'élément de file d'attente sera supprimé, mais les fichiers torrent seront conservés.
- Type : Booléen
- Valeurs autorisées : vrai, faux
- Est obligatoire : non (par défaut : False)
REMOVE_METADATA_MISSING
- Indique si les téléchargements bloqués lors de l'obtention des métadonnées sont supprimés de la file d'attente.
- Ces téléchargements sont ajoutés à la liste de blocage, afin qu'ils ne soient pas demandés à nouveau
- Un nouveau téléchargement provenant d'une autre source est automatiquement ajouté par radarr/sonarr/lidarr/readarr/whisparr (si disponible)
- Type : Booléen
- Valeurs autorisées : vrai, faux
- Est obligatoire : non (par défaut : False)
REMOVE_MISSING_FILES
- Détermine si les téléchargements comportant l'avertissement « Fichiers manquants » sont supprimés de la file d'attente.
- Ces téléchargements ne sont pas ajoutés à la liste de blocage
- Type : Booléen
- Valeurs autorisées : vrai, faux
- Est obligatoire : non (par défaut : False)
REMOVE_ORPHANS
- Détermine si les téléchargements orphelins sont supprimés de la file d'attente
- Les téléchargements orphelins sont ceux qui n'appartiennent plus à aucun média demandé (puisque le média a été supprimé de radarr/sonarr/lidarr/readarr/whisparr après le démarrage du téléchargement)
- Ces téléchargements ne sont pas ajoutés à la liste de blocage
- Type : Booléen
- Valeurs autorisées : vrai, faux
- Est obligatoire : non (par défaut : False)
REMOVE_SLOW
- Indique si les téléchargements lents sont supprimés de la file d'attente
- Les téléchargements lents sont ajoutés à la liste de blocage afin qu'ils ne soient pas demandés à nouveau à l'avenir.
- Remarque : ne s'applique pas aux téléchargements Usenet (puisque les utilisateurs paient pour une certaine vitesse, aucune lenteur ne devrait se produire)
- Type : Booléen
- Valeurs autorisées : vrai, faux
- Est obligatoire : non (par défaut : False)
REMOVE_STALLED
- Détermine si les téléchargements bloqués sans connexion sont supprimés de la file d'attente
- Ces téléchargements sont ajoutés à la liste de blocage afin qu'ils ne soient pas demandés à nouveau à l'avenir.
- Type : Booléen
- Valeurs autorisées : vrai, faux
- Est obligatoire : non (par défaut : False)
REMOVE_UNMONITORED
- Détermine si les téléchargements appartenant à des médias non surveillés sont supprimés de la file d'attente
- Remarque : ne sera supprimé de la file d'attente que si toutes les émissions de télévision dépendant du même téléchargement ne sont pas surveillées.
- Ces téléchargements ne sont pas ajoutés à la liste de blocage
- Remarque : étant donné que Sonarr ne prend pas en charge les packs multi-saisons, si vous en téléchargez un, vous devez le protéger avec
NO_STALLED_REMOVAL_QBIT_TAG
qui est expliqué plus bas. - Type : Booléen
- Valeurs autorisées : vrai, faux
- Est obligatoire : non (par défaut : False)
RUN_PERIODIC_RESCANS
- Indique si les recherches sont automatiquement déclenchées pour les éléments manquants ou n'ayant pas encore atteint le seuil
- Remarque : ne prend actuellement en charge que Radarr/Sonarr (Lidarr en fonction de : Lidarr/Lidarr#5084 / Readarr En fonction de : Readarr/Readarr#3724)
- Type : Dictionnaire
- Est obligatoire : Non (par défaut, aucune recherche n'est déclenchée automatiquement)
- "SONARR"/"RADARR" active les recherches automatiques pour les instances respectives
- "MISSING"/"CUTOFF_UNMET" active la recherche automatique des éléments recherchés (la valeur par défaut est True)
- "MAX_CONCURRENT_SCANS" spécifie le nombre maximum d'éléments à rechercher dans chaque analyse. Cette valeur détermine le nombre d'éléments traités par opération de recherche, qui se produit selon l'intervalle défini par REMOVE_TIMER.
- Remarque : La limite est par liste de personnes recherchées. Ainsi, si Radarr et Sonarr sont configurés pour des recherches automatiques, à la fois pour les éléments manquants et non satisfaits, le nombre réel peut être quatre fois supérieur à MAX_CONCURRENT_SCANS.
- "MIN_DAYS_BEFORE_RESCAN" détermine les jours qui doivent s'écouler avant qu'un article ne soit à nouveau pris en compte pour une analyse
- Remarque : RUN_PERIODIC_RESCANS recherchera toujours les éléments qui ont été recherchés le plus longtemps
RUN_PERIODIC_RESCANS: '
{
"SONARR": {"MISSING": true, "CUTOFF_UNMET": true, "MAX_CONCURRENT_SCANS": 3, "MIN_DAYS_BEFORE_RESCAN": 7},
"RADARR": {"MISSING": true, "CUTOFF_UNMET": true, "MAX_CONCURRENT_SCANS": 3, "MIN_DAYS_BEFORE_RESCAN": 7}
}'
Il existe différentes notations yaml, certains utilisateurs ont suggéré la notation alternative ci-dessous. Si vous rencontrez des problèmes, veuillez d'abord vérifier les problèmes résolus avant d'en ouvrir un nouveau (par exemple, #173).
- RUN_PERIODIC_RESCANS=[
{
"SONARR":[{"MISSING":true, "CUTOFF_UNMET":true, "MAX_CONCURRENT_SCANS":3, "MIN_DAYS_BEFORE_RESCAN":7}],
"RADARR":[{"MISSING":true, "CUTOFF_UNMET":true, "MAX_CONCURRENT_SCANS":3, "MIN_DAYS_BEFORE_RESCAN":7}]
}
MIN_DOWNLOAD_SPEED
- Définit la vitesse de téléchargement minimale pour les téléchargements actifs
- Si l'augmentation de la taille du fichier téléchargé est inférieure à cette valeur entre deux vérifications consécutives, le téléchargement est considéré comme lent et est supprimé s'il se produit plus souvent que les tentatives autorisées.
- Type : Entier
- Unité : Koctets par seconde
- Est obligatoire : non (la valeur par défaut est 100, mais n'est appliquée que lorsque "REMOVE_SLOW" est vrai)
PERMITTED_ATTEMPTS
- Définit combien de fois un téléchargement doit être détecté comme un téléchargement de métadonnées bloqué, lent ou bloqué avant d'être supprimé.
- Type : Entier
- Unité : Nombre de numérisations
- Est obligatoire : Non (3 par défaut)
NO_STALLED_REMOVAL_QBIT_TAG
- Les téléchargements dans qBittorrent marqués avec cette balise ne seront pas supprimés
- La fonctionnalité n'est pas disponible lorsque vous n'utilisez pas qBittorrent comme gestionnaire de torrent
- S'applique à tous les types de suppression (c'est-à-dire que rien ne sera supprimé automatiquement par declutarr)
- Remarque : Vous souhaiterez peut-être essayer de "forcer la revérification" pour que vos torrents bloqués soient sauvegardés et exécutés manuellement.
- La balise est automatiquement créée dans qBittorrent (le qBittorrent requis est accessible sur
QBITTORRENT_URL
) - Important : protège également les téléchargements non surveillés contre la suppression (pertinent pour les packs multi-saisons)
- Type : chaîne
- Est obligatoire : non (par défaut :
Don't Kill
")
IGNORE_PRIVATE_TRACKERS
- Les torrents privés dans qBittorrent ne seront pas supprimés de la file d'attente si cela est défini sur true
- Fonctionne uniquement si qBittorrent est utilisé (ne fonctionne pas avec la transmission, etc.)
- S'applique à tous les types de suppression (c'est-à-dire que rien ne sera supprimé automatiquement par decluttarr) ; la seule exception à cela est REMOVE_NO_FORMAT_UPGRADE, où pour les trackers privés, l'élément de file d'attente est supprimé (mais les fichiers torrent sont conservés)
- Remarque : Vous souhaiterez peut-être essayer de "forcer la revérification" pour que vos torrents bloqués soient sauvegardés et exécutés manuellement.
- Type : Booléen
- Valeurs autorisées : vrai, faux
- Est obligatoire : Non (Vrai par défaut)
FAILED_IMPORT_MESSAGE_PATTERNS
- Fonctionne avec REMOVE_FAILED_IMPORTS (uniquement pertinent si ce paramètre est vrai)
- Définit les modèles en fonction desquels l'outil décide si un téléchargement terminé comportant des avertissements lors de l'importation doit être considéré comme un échec.
- Les éléments de file d'attente sont considérés comme ayant échoué si l'un des modèles spécifiés est contenu dans l'un des messages de l'élément de file d'attente.
- Remarque : Si elle est laissée vide (ou non spécifiée), toute importation en attente avec avertissement est considérée comme ayant échoué.
- Type : Liste
- Valeurs recommandées : ["Pas une mise à niveau du format personnalisé pour les existants", "Pas une mise à niveau pour les existants"]
- Est obligatoire : non (la valeur par défaut est [], ce qui signifie que tous les messages sont des échecs)
Section radar
Définit l'instance radarr sur laquelle la file d'attente de téléchargement doit être désencombrée
RADARR_URL
- URL sous laquelle l'instance est accessible
- Si elle n'est pas définie, cette instance ne sera pas surveillée
RADARR_KEY
- Votre clé API pour radarr
Section Sonarr
Définit l'instance sonarr sur laquelle la file d'attente de téléchargement doit être désencombrée
SONARR_URL
- URL sous laquelle l'instance est accessible
- Si elle n'est pas définie, cette instance ne sera pas surveillée
SONARR_KEY
- Votre clé API pour sonarr
Section Lidarr
Définit l'instance lidarr sur laquelle la file d'attente de téléchargement doit être désencombrée
LIDARR_URL
- URL sous laquelle l'instance est accessible
- Si elle n'est pas définie, cette instance ne sera pas surveillée
LIDARR_KEY
- Votre clé API pour lidarr
Section de lecture
Définit l'instance readarr sur laquelle la file d'attente de téléchargement doit être désencombrée
READARR_URL
- URL sous laquelle l'instance est accessible
- Si elle n'est pas définie, cette instance ne sera pas surveillée
READARR_KEY
- Votre clé API pour readarr
Section Whisparr
Définit l'instance Whisparr sur laquelle la file d'attente de téléchargement doit être désencombrée
WHISPARR_URL
- URL sous laquelle l'instance est accessible
- Si elle n'est pas définie, cette instance ne sera pas surveillée
WHISPARR_KEY
- Votre clé API pour Whisparr
Section qBittorrent
Définit les paramètres de connexion à qBittorrent. Si un autre gestionnaire de torrent est utilisé, commentez cette section (voir ci-dessus les limitations de fonctionnalités qui en découlent)
QBITTORRENT_URL
- URL sous laquelle l'instance est accessible
- S'il n'est pas défini, le NO_STALLED_REMOVAL_QBIT_TAG ne prend aucun effet
QBITTORRENT_USERNAME
- Nom d'utilisateur utilisé pour se connecter à qBittorrent
- Facultatif; non nécessaire si le contournement de l'authentification sur qBittorrent est activé (par exemple pour les connexions locales)
QBITTORRENT_PASSWORD
- Mot de passe utilisé pour se connecter à qBittorrent
- Facultatif; non nécessaire si le contournement de l'authentification sur qBittorrent est activé (par exemple pour les connexions locales)
Crédits
- Script de détection des téléchargements bloqués développé sur le code par MattDGTL/sonarr-radar-queue-cleaner
- Script pour lire la configuration développée sur le code par syncarr/syncarr
- Équipe SONARR/RADARR et contributeurs pour leur excellent produit, leur documentation API et leurs conseils sur leur canal Discord
- Un merci tout particulier à eux pour avoir ajouté un indicateur supplémentaire à leur API qui a permis à ce script de détecter les téléchargements bloqués en trouvant des métadonnées.
- craggles17 pour la compatibilité des bras
- Fxsch pour une documentation améliorée / ReadMe
Clause de non-responsabilité
Ce script est exempt de toute garantie et vous l'utilisez à vos propres risques