¿Te gusta esta aplicación? Gracias por darle un ⭐️
Decluttarr
Tabla de contenido
- Descripción general
- Dependencias, sugerencias y preguntas frecuentes
- Empezando
- Explicación de la configuración.
- Créditos
- Descargo de responsabilidad
Descripción general
Decluttarr mantiene la cola radarr, sonarr, lidarr, readarr y whisparr libre de descargas estancadas o redundantes
Descripción general de las funciones:
- Eliminar automáticamente las descargas que están bloqueadas al descargar metadatos (y activar la descarga desde otra fuente)
- Eliminar automáticamente las descargas fallidas (y activar la descarga desde otra fuente)
- Eliminar automáticamente las descargas pertenecientes a radarr/sonarr/etc. elementos que se han eliminado mientras tanto ("descargas huérfanas")
- Eliminar automáticamente las descargas detenidas, después de que se haya descubierto que están detenidas varias veces seguidas (y activar la descarga desde otra fuente)
- Eliminar automáticamente las descargas lentas, después de que se haya descubierto que son lentas varias veces seguidas (y activar la descarga desde otra fuente)
- Eliminar automáticamente las descargas pertenecientes a radarr/sonarr/etc. elementos que no están monitoreados
- Eliminar automáticamente las descargas que no se pudieron importar, ya que no son una actualización de formato (es decir, ya existe una versión mejor)
Puede ejecutar esto localmente iniciando main.py o extrayendo la imagen de la ventana acoplable. Puede encontrar un docker-compose.yml de muestra en la carpeta Docker.
Dependencias, sugerencias y preguntas frecuentes
- Utilice Sonarr v4 y Radarr v5 (actualmente la etiqueta 'nightly' en lugar de 'latest'); de lo contrario, es posible que ciertas funciones no funcionen correctamente
- Se recomienda qBittorrent, pero no es obligatorio. Si no utiliza qBittorrent, experimentará las siguientes limitaciones:
- Al detectar descargas lentas, se utilizarán las velocidades proporcionadas por las aplicaciones *arr, lo cual es menos preciso que lo que devuelve qBittorrent cuando se consulta directamente
- La característica que permite proteger las descargas contra la eliminación (NO_STALLED_REMOVAL_QBIT_TAG) no funciona
- La función que ignora los rastreadores privados no funciona
- Si ve errores extraños como "encontrado 10/3 veces", considere activar la configuración "Rechazar hashes de torrents bloqueados mientras se capturan". En Radarr/Sonarr/Readarr/Lidarr/Whisparr nocturno, la opción se encuentra en configuración/indexadores en las opciones avanzadas de cada indexador, en Prowlarr está en configuración/aplicaciones y luego en la configuración avanzada de la aplicación respectiva.
- Cuando se eliminan los torrents rotos, los archivos que les pertenecen se eliminan
- En todos los tipos de eliminación: radarr/sonarr/lidarr/readarr/whisparr agrega automáticamente una nueva descarga de otra fuente (si está disponible)
- Si usa qBittorrent y ninguno de sus torrents se elimina y los registros detallados indican que todos los torrents están protegidos por NO_STALLED_REMOVAL_QBIT_TAG incluso si no lo están, es posible que esté usando una versión de qBittorrent que tiene problemas con las llamadas API y puede considerar cambiar a una imagen de qBit diferente (ver n.° 56)
- Actualmente, las aplicaciones “*Arr” solo se admiten en inglés. Consulte el número 132 para obtener más detalles.
- Si tiene problemas con Yaml, verifique los problemas cerrados. Hay diferentes notaciones y es muy posible que el problema que encontró ya se haya resuelto en uno de los problemas. Una vez que haya resuelto su problema, no dude en publicar su yaml para ayudar a otros aquí: #173
- declutarr solo admite instancias únicas de radarr/sonarr. Si tiene varias instancias de esos *arrs, la solución es ejecutar también varios decluclutarrs
Empezando
Hay dos formas de ejecutar esto:
- Como contenedor acoplable con docker-compose
- Clonando el repositorio y ejecutando el script manualmente
Ambas formas se explican a continuación y hay una explicación para las diferentes configuraciones a continuación que
Método 1: ventana acoplable
- Crear un archivo
docker-compose.yml
- Utilice lo siguiente como base para eso y modifique la configuración según sus necesidades
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
- Ejecute
docker-compose up -d
en el directorio donde se encuentra el archivo para crear el contenedor de Docker. Nota: obtenga siempre la versión " más reciente ". La versión "dev" es solo para pruebas y solo debe extraerse cuando se contribuye con código o se brinda soporte con correcciones de errores.
Método 2: ejecutar manualmente
- Clona el repositorio con
git clone -b main https://github.com/ManiMatter/decluttarr.git
- Cambie el nombre del
config.conf-Example
dentro de la carpeta de configuración a config.conf
- Modifique
config.conf
según sus necesidades - Instale las bibliotecas enumeradas en docker/requirements.txt (pip install -r requisitos.txt)
- Ejecute el script con
python3 main.py
Nota: config.conf
no se tiene en cuenta cuando se ejecuta a través de docker-compose.yml
Explicación de la configuración.
Configuraciones generales
Configura el comportamiento general de la aplicación (en todas las funciones)
LOG_LEVEL
- Establece el nivel en el que se realizará el registro
-
INFO
solo mostrará los cambios aplicados a radarr/sonarr/lidarr/readarr/whisparr -
VERBOSE
muestra cada verificación que se realiza incluso si no se aplica ningún cambio -
DEBUG
muestra información muy granular, solo necesaria para la depuración - Tipo: Cuerda
- Valores permitidos: CRÍTICO, ERROR, ADVERTENCIA, INFORMACIÓN, DETALLE, DEBUG
- Es obligatorio: No (el valor predeterminado es INFO)
PRUEBA_RUN
- Le permite probar esta herramienta de forma segura. Si está activo, las descargas no se eliminarán
- Tipo: Booleano
- Valores permitidos: verdadero, falso
- Es obligatorio: No (el valor predeterminado es Falso)
SSL_VERIFICACIÓN
- Activa o desactiva la verificación del certificado SSL para todas las llamadas API
-
True
significa que la verificación del certificado SSL está activada - Advertencia: Es importante tener en cuenta que deshabilitar la verificación SSL puede tener implicaciones de seguridad, ya que hace que el sistema sea vulnerable a ataques de intermediario. Sólo debe realizarse en un entorno controlado y seguro donde los riesgos se comprendan y se mitiguen bien.
- Tipo: Booleano
- Valores permitidos: verdadero, falso
- Es obligatorio: No (el valor predeterminado es Verdadero)
Configuración de características
Indica qué tipo de limpieza se aplica a la cola de descargas
REMOVE_TIMER
- Establece la frecuencia con la que se comprueba la cola en busca de descargas huérfanas y detenidas.
- Tipo: entero
- Unidad: Minutos
- Es obligatorio: No (el valor predeterminado es 10)
REMOVE_FAILED
- Determina si las descargas fallidas sin conexiones se eliminan de la cola
- Estas descargas no se agregan a la lista de bloqueo: radarr/sonarr/lidarr/readarr/whisparr agrega automáticamente una nueva descarga de otra fuente (si está disponible)
- Tipo: Booleano
- Valores permitidos: verdadero, falso
- Es obligatorio: No (el valor predeterminado es Falso)
REMOVE_FAILED_IMPORTS
- Determina si las descargas que no se pudieron importar se eliminan de la cola
- Esto puede suceder, por ejemplo, cuando ya existe una versión mejor.
- Nota: Solo se considera que una importación falló si el mensaje de importación contiene una advertencia que aparece en FAILED_IMPORT_MESSAGE_PATTERNS (ver más abajo)
- Estas descargas se agregan a la lista de bloqueo.
- Si la configuración IGNORE_PRIVATE_TRACKERS es verdadera y el torrent afectado es un rastreador privado, el elemento de la cola se eliminará, pero los archivos del torrent se conservarán.
- Tipo: Booleano
- Valores permitidos: verdadero, falso
- Es obligatorio: No (el valor predeterminado es Falso)
REMOVE_METADATA_MISSING
- Indica si las descargas atascadas al obtener metadatos se eliminan de la cola
- Estas descargas se agregan a la lista de bloqueo, para que no se vuelvan a solicitar
- radarr/sonarr/lidarr/readarr/whisparr agrega automáticamente una nueva descarga de otra fuente (si está disponible)
- Tipo: Booleano
- Valores permitidos: verdadero, falso
- Es obligatorio: No (el valor predeterminado es Falso)
REMOVE_MISSING_FILES
- Determina si las descargas que tienen la advertencia "Faltan archivos" se eliminan de la cola
- Estas descargas no se agregan a la lista de bloqueo
- Tipo: Booleano
- Valores permitidos: verdadero, falso
- Es obligatorio: No (el valor predeterminado es Falso)
ELIMINAR_HUÉRFANOS
- Determina si las descargas huérfanas se eliminan de la cola
- Las descargas huérfanas son aquellas que ya no pertenecen a ningún medio solicitado (dado que el medio se eliminó de radarr/sonarr/lidarr/readarr/whisparr después de que comenzó la descarga)
- Estas descargas no se agregan a la lista de bloqueo
- Tipo: Booleano
- Valores permitidos: verdadero, falso
- Es obligatorio: No (el valor predeterminado es Falso)
REMOVE_SLOW
- Dirige si las descargas lentas se eliminan de la cola
- Las descargas lentas se agregan a la lista de bloqueo, para que no se vuelvan a solicitar en el futuro.
- Nota: No aplica para descargas de Usenet (dado que allí los usuarios pagan por cierta velocidad, no debería ocurrir lentitud)
- Tipo: Booleano
- Valores permitidos: verdadero, falso
- Es obligatorio: No (el valor predeterminado es Falso)
REMOVE_STALLED
- Determina si las descargas detenidas sin conexiones se eliminan de la cola
- Estas descargas se agregan a la lista de bloqueo, para que no se vuelvan a solicitar en el futuro.
- Tipo: Booleano
- Valores permitidos: verdadero, falso
- Es obligatorio: No (el valor predeterminado es Falso)
REMOVE_UNMONITORED
- Dirige si las descargas que pertenecen a medios no supervisados se eliminan de la cola
- Nota: Solo se eliminará de la cola si todos los programas de TV que dependen de la misma descarga no están monitoreados.
- Estas descargas no se agregan a la lista de bloqueo
- Nota: Dado que sonarr no admite paquetes multitemporada, si descargas uno debes protegerlo con
NO_STALLED_REMOVAL_QBIT_TAG
que se explica más adelante. - Tipo: Booleano
- Valores permitidos: verdadero, falso
- Es obligatorio: No (el valor predeterminado es Falso)
RUN_PERIODIC_RESCANS
- Determina si las búsquedas se activan automáticamente para elementos que faltan o que aún no han alcanzado el límite
- Nota: Actualmente solo es compatible con Radarr/Sonarr (Lidarr depende de: Lidarr/Lidarr#5084 / Readarr depende de: Readarr/Readarr#3724)
- Tipo: Diccionario
- Es obligatorio: No (el valor predeterminado es que no se activen búsquedas automáticamente)
- "SONARR"/"RADARR" activa las búsquedas automáticas de las respectivas instancias
- "MISSING"/"CUTOFF_UNMET" activa la búsqueda automática de los elementos deseados (el valor predeterminado es Verdadero)
- "MAX_CONCURRENT_SCANS" especifica el número máximo de elementos que se buscarán en cada escaneo. Este valor dicta cuántos elementos se procesan por operación de búsqueda, lo que ocurre según el intervalo establecido por REMOVE_TIMER.
- Nota: El límite es por lista de buscados. Por lo tanto, si tanto Radarr como Sonarr están configurados para búsquedas automáticas, tanto de elementos faltantes como de elementos no satisfechos, el recuento real puede ser cuatro veces mayor que MAX_CONCURRENT_SCANS.
- "MIN_DAYS_BEFORE_RESCAN" determina los días que deben pasar antes de que un elemento se considere nuevamente para un escaneo
- Nota: RUN_PERIODIC_RESCANS siempre buscará aquellos elementos que se han buscado durante más tiempo
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}
}'
Hay diferentes notaciones yaml, algunos usuarios sugirieron la siguiente notación alternativa. Si tiene problemas, primero verifique los problemas cerrados antes de abrir uno nuevo (p. ej., n.° 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_DESCARGA_VELOCIDAD
- Establece la velocidad de descarga mínima para descargas activas
- Si el aumento en el tamaño del archivo descargado de una descarga es menor que este valor entre dos comprobaciones consecutivas, la descarga se considera lenta y se elimina si ocurre con más frecuencia que los intentos permitidos.
- Tipo: entero
- Unidad: KBytes por segundo
- Es obligatorio: No (el valor predeterminado es 100, pero solo se aplica cuando "REMOVE_SLOW" es verdadero)
PERMITTED_ATTEMPTS
- Define cuántas veces se debe detectar una descarga como metadatos de descarga estancada, lenta o atascada antes de eliminarla.
- Tipo: entero
- Unidad: Número de exploraciones
- Es obligatorio: No (el valor predeterminado es 3)
NO_STALLED_REMOVAL_QBIT_TAG
- Las descargas en qBittorrent etiquetadas con esta etiqueta no se eliminarán
- La función no está disponible cuando no se utiliza qBittorrent como administrador de torrents
- Se aplica a todos los tipos de eliminación (es decir, decluttarr no eliminará nada automáticamente)
- Nota: Es posible que desees intentar "forzar la nueva verificación" para que tus torrents atascados vuelvan a funcionar manualmente.
- La etiqueta se crea automáticamente en qBittorrent (se requiere que se pueda acceder a qBittorrent en
QBITTORRENT_URL
) - Importante: también protege la eliminación de descargas no supervisadas (relevante para paquetes de varias temporadas)
- Tipo: Cuerda
- Es obligatorio: No (el valor predeterminado es
Don't Kill
)
IGNORAR_PRIVATE_TRACKERS
- Los torrents privados en qBittorrent no se eliminarán de la cola si se establece en verdadero
- Sólo funciona si se utiliza qBittorrent (no funciona con transmisión, etc.)
- Se aplica a todos los tipos de eliminación (es decir, decluttarr no eliminará nada automáticamente); La única excepción a esto es REMOVE_NO_FORMAT_UPGRADE, donde para los rastreadores privados el elemento de la cola se elimina (pero los archivos torrent se conservan).
- Nota: Es posible que desees intentar "forzar la nueva verificación" para que tus torrents atascados vuelvan a funcionar manualmente.
- Tipo: Booleano
- Valores permitidos: verdadero, falso
- Es obligatorio: No (el valor predeterminado es Verdadero)
FAILED_IMPORT_MESSAGE_PATTERNS
- Funciona junto con REMOVE_FAILED_IMPORTS (solo es relevante si esta configuración es verdadera)
- Define los patrones basados en los cuales la herramienta decide si una descarga completa que tiene advertencias sobre la importación debe considerarse fallida.
- Los elementos de la cola se consideran fallidos si alguno de los patrones especificados está contenido en uno de los mensajes del elemento de la cola.
- Nota: Si se deja vacío (o no se especifica), cualquier importación pendiente con advertencia se considera fallida.
- Tipo: Lista
- Valores recomendados: ["No es una actualización de formato personalizado para los existentes", "No es una actualización para los existentes"]
- Es obligatorio: No (el valor predeterminado es [], lo que significa que todos los mensajes son errores)
Sección de radar
Define la instancia de radarr en la que se debe ordenar la cola de descargas.
RADARR_URL
- URL bajo la cual se puede acceder a la instancia
- Si no se define, esta instancia no será monitoreada
RADARR_KEY
Sección de sonda
Define la instancia de sonda en la que se debe ordenar la cola de descarga.
SONARR_URL
- URL bajo la cual se puede acceder a la instancia
- Si no se define, esta instancia no será monitoreada
SONARR_KEY
sección lidarr
Define la instancia de lidarr en la que se debe ordenar la cola de descargas.
LIDARR_URL
- URL bajo la cual se puede acceder a la instancia
- Si no se define, esta instancia no será monitoreada
LIDARR_KEY
Sección de lectura
Define la instancia de Readarr en la que se debe ordenar la cola de descarga.
READARR_URL
- URL bajo la cual se puede acceder a la instancia
- Si no se define, esta instancia no será monitoreada
READARR_KEY
- Su clave API para readarr
sección de susurro
Define la instancia de Whisparr en la que se debe ordenar la cola de descarga.
WHISPARR_URL
- URL bajo la cual se puede acceder a la instancia
- Si no se define, esta instancia no será monitoreada
WHISPARR_KEY
- Tu clave API para Whisparr
sección qBittorrent
Define la configuración para conectarse con qBittorrent. Si se utiliza un administrador de torrent diferente, comente esta sección (vea arriba las limitaciones en la funcionalidad que surgen de esto)
QBITTORRENT_URL
- URL bajo la cual se puede acceder a la instancia
- Si no se define, NO_STALLED_REMOVAL_QBIT_TAG no tiene efecto
QBITTORRENT_USERNAME
- Nombre de usuario utilizado para iniciar sesión en qBittorrent
- Opcional; no es necesario si está habilitada la omisión de autenticación en qBittorrent (por ejemplo, para conexiones locales)
QBITTORRENT_PASSWORD
- Contraseña utilizada para iniciar sesión en qBittorrent
- Opcional; no es necesario si la omisión de autenticación en qBittorrent está habilitada (por ejemplo, para conexiones locales)
Créditos
- Script para detectar descargas detenidas ampliado en código por MattDGTL/sonarr-radarr-queue-cleaner
- Script para leer la configuración ampliada en el código mediante syncarr/syncarr
- Equipo de SONARR/RADARR y colaboradores por su excelente producto, documentación API y orientación en su canal Discord
- Un agradecimiento especial a ellos por agregar una marca adicional a su API que permitió que este script detectara descargas atascadas al encontrar metadatos.
- craggles17 para compatibilidad con brazos
- Fxsch para documentación mejorada/Léame
Descargo de responsabilidad
Este script no tiene garantía y usted lo utiliza bajo su propio riesgo.