喜欢这个应用程序吗?感谢您给它⭐️
德克卢塔尔
目录
- 概述
- 依赖项、提示和常见问题解答
- 入门
- 设置说明
- 制作人员
- 免责声明
概述
Decluttarr 使雷达、声纳、激光雷达、读取和 Whisparr 队列免于停滞/冗余下载
功能概述:
- 自动删除卡住下载元数据的下载(并触发从其他源下载)
- 自动删除失败的下载(并触发从其他来源的下载)
- 自动删除属于radar/sonarr/等的下载。在此期间已删除的项目(“孤立下载”)
- 在发现连续多次停止下载后自动删除停止的下载(并触发从另一个源的下载)
- 在连续多次发现慢速下载后自动删除慢速下载(并触发从其他来源下载)
- 自动删除属于radar/sonarr/等的下载。不受监控的项目
- 自动删除导入失败的下载,因为它们不是格式升级(即已经存在更好的版本)
您可以通过启动 main.py 或拉取 docker 映像来在本地运行它。您可以在 docker 文件夹中找到示例 docker-compose.yml。
依赖项、提示和常见问题解答
- 使用 Sonarr v4 和 Radarr v5(当前为“每晚”标签而不是“最新”),否则某些功能可能无法正常工作
- 建议使用 qBittorrent,但不是必需的。如果您不使用 qBittorrent,您将遇到以下限制:
- 当检测到慢速下载时,将使用 *arr 应用程序提供的速度,这比 qBittorrent 直接查询时返回的速度不太准确
- 允许保护下载不被删除的功能 (NO_STALLED_REMOVAL_QBIT_TAG) 不起作用
- 忽略私人追踪器的功能不起作用
- 如果您看到奇怪的错误,例如“发现 10 / 3 次”,请考虑打开“抓取时拒绝阻止列出的 Torrent 哈希”设置。在夜间 Radarr/Sonarr/Readarr/Lidarr/Whisparr 上,该选项位于每个索引器的高级选项中的设置/索引器下,在 Prowlarr 上,该选项位于设置/应用程序下,然后是相应应用程序的高级设置
- 当损坏的种子被删除时,属于它们的文件也会被删除
- 在所有删除类型中:由radar/sonarr/lidarr/readarr/whisparr(如果可用)自动添加来自其他来源的新下载
- 如果您使用 qBittorrent 并且没有任何 torrent 被删除,并且详细日志表明所有 torrent 都受到 NO_STALLED_REMOVAL_QBIT_TAG 的保护,即使它们没有受到保护,您可能使用的 qBittorrent 版本在 API 调用方面存在问题,您可能需要考虑切换到不同的 qBit 图像(参见#56)
- 目前,“*Arr”应用程序仅支持英语。有关更多详细信息,请参阅问题 #132
- 如果您遇到 yaml 问题,请检查已关闭的问题。有不同的表示法,很可能您发现的问题已经在其中一个问题中得到解决。一旦你解决了你的问题,请随时发布你的 yaml 来帮助其他人:#173
- declutarr 仅支持单个雷达/声纳实例。如果您有这些 *arrs 的多个实例,解决方案是同时运行多个 decluclutarrs
入门
有两种方法可以运行它:
- 作为带有 docker-compose 的 docker 容器
- 通过克隆存储库并手动运行脚本
下面解释了这两种方式,并且下面有对不同设置的解释
方法一:Docker
- 制作
docker-compose.yml
文件 - 使用以下内容作为基础,并根据您的需要调整设置
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
- 在文件所在目录中运行
docker-compose up -d
创建 docker 容器 注意:始终拉取“最新”版本。 “dev”版本仅用于测试,仅在贡献代码或支持错误修复时才应拉取
方法二:手动运行
- 使用
git clone -b main https://github.com/ManiMatter/decluttarr.git
- 将 config 文件夹内的
config.conf-Example
重命名为config.conf
- 根据您的需要调整
config.conf
- 安装 docker/requirements.txt 中列出的库 (pip install -rrequirements.txt)
- 使用
python3 main.py
运行脚本 注意:通过 docker-compose.yml 运行时会忽略config.conf
设置说明
常规设置
配置应用程序的一般行为(跨所有功能)
日志级别
- 设置进行日志记录的级别
INFO
将仅显示应用于 Radarr/sonarr/lidarr/readarr/whisparr 的更改VERBOSE
显示正在执行的每项检查,即使没有应用任何更改DEBUG
显示非常精细的信息,仅在调试时需要- 类型:字符串
- 允许的值:CRITICAL、ERROR、WARNING、INFO、VERBOSE、DEBUG
- 是否强制:否(默认为 INFO)
测试运行
- 让您可以安全地试用此工具。如果处于活动状态,下载内容不会被删除
- 类型:布尔值
- 允许值:True、False
- 是否强制:否(默认为 False)
SSL_验证
- 为所有 API 调用打开或关闭 SSL 证书验证
True
表示 SSL 证书验证已开启- 警告:请务必注意,禁用 SSL 验证可能会产生安全隐患,因为它会使系统容易受到中间人攻击。只能在受控且安全的环境中进行,其中风险得到充分理解和减轻
- 类型:布尔值
- 允许值:True、False
- 是否强制:否(默认为 True)
功能设置
控制将哪种类型的清理应用于下载队列
移除定时器
- 设置检查队列是否存在孤立下载和停滞下载的频率
- 类型:整数
- 单位:分钟
- 是否强制:否(默认为 10)
移除_失败
- 控制是否从队列中删除没有连接的失败下载
- 这些下载不会添加到阻止列表中 - 雷达/声纳/激光雷达/readarr/whisparr(如果可用)会自动添加来自其他来源的新下载
- 类型:布尔值
- 允许值:True、False
- 是否强制:否(默认为 False)
删除_失败_导入
- 控制导入失败的下载是否从队列中删除
- 例如,当已经存在更好的版本时,可能会发生这种情况
- 注意:仅当导入消息包含 FAILED_IMPORT_MESSAGE_PATTERNS 上列出的警告时才认为导入失败(见下文)
- 这些下载已添加到阻止列表中
- 如果设置 IGNORE_PRIVATE_TRACKERS 为 true,并且受影响的 torrent 是私人跟踪器,则队列项目将被删除,但 torrent 文件将保留
- 类型:布尔值
- 允许值:True、False
- 是否强制:否(默认为 False)
删除元数据缺失
- 控制是否从队列中删除卡住获取元数据的下载
- 这些下载被添加到阻止列表中,这样就不会被重新请求
- radar/sonarr/lidarr/readarr/whisparr(如果可用)会自动添加来自其他来源的新下载
- 类型:布尔值
- 允许值:True、False
- 是否强制:否(默认为 False)
REMOVE_MISSING_FILES
- 控制是否从队列中删除带有“文件丢失”警告的下载
- 这些下载不会添加到阻止列表中
- 类型:布尔值
- 允许值:True、False
- 是否强制:否(默认为 False)
REMOVE_ORPHANS
- 控制是否从队列中删除孤立下载
- 孤立下载是那些不再属于任何请求媒体的下载(因为下载开始后媒体已从radar/sonarr/lidarr/readarr/whisparr 中删除)
- 这些下载不会添加到阻止列表中
- 类型:布尔值
- 允许值:True、False
- 是否强制:否(默认为 False)
移除_SLOW
- 控制是否从队列中删除缓慢的下载
- 缓慢下载将被添加到阻止列表中,以便将来不会重新请求它们
- 注意:不适用于 usenet 下载(由于用户为一定的速度付费,因此不应出现速度缓慢的情况)
- 类型:布尔值
- 允许值:True、False
- 是否强制:否(默认为 False)
REMOVE_STALLED
- 控制是否从队列中删除没有连接的停滞下载
- 这些下载被添加到阻止列表中,以便将来不会再次请求它们
- 类型:布尔值
- 允许值:True、False
- 是否强制:否(默认为 False)
REMOVE_UNMONITORED
- 控制是否从队列中删除属于不受监控媒体的下载
- 注意:仅当依赖于同一下载的所有电视节目均不受监控时,才会从队列中删除
- 这些下载不会添加到阻止列表中
- 注意:由于 sonarr 不支持多季节包,因此如果您下载了一个包,您应该使用
NO_STALLED_REMOVAL_QBIT_TAG
来保护它,这将在下面进一步解释 - 类型:布尔值
- 允许值:True、False
- 是否强制:否(默认为 False)
RUN_PERIODIC_RESCANS
- 控制是否自动触发对丢失或尚未达到截止值的项目的搜索
- 注意:目前仅支持 Radarr/Sonarr(Lidarr 取决于:Lidarr/Lidarr#5084 / Readarr 取决于:Readarr/Readarr#3724)
- 类型:词典
- 是否强制:否(默认不自动触发搜索)
- “SONARR”/“RADARR”打开对相应实例的自动搜索
- “MISSING”/“CUTOFF_UNMET”打开自动搜索那些想要的项目(默认为True)
- “MAX_CONCURRENT_SCANS”指定每次扫描中要搜索的最大项目数。该值指示每次搜索操作处理的项目数,该操作根据 REMOVE_TIMER 设置的时间间隔发生。
- 注意:限制是根据通缉名单确定的。因此,如果雷达和声纳都设置为自动搜索,无论是针对丢失的还是截止的未满足项目,实际计数可能是 MAX_CONCURRENT_SCANS 的四倍
- “MIN_DAYS_BEFORE_RESCAN”控制在考虑再次扫描某个项目之前需要经过的天数
- 注意:RUN_PERIODIC_RESCANS将始终搜索那些搜索时间最长的项目
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}
}'
有不同的 yaml 表示法,一些用户建议使用以下替代表示法。如果您遇到问题,请先检查已关闭的问题,然后再打开新问题(例如,#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}]
}
最低下载速度
- 设置活动下载的最低下载速度
- 如果两次连续检查之间下载文件大小的增加小于此值,则下载被视为缓慢,并且如果发生次数超过允许的尝试次数,则下载被删除
- 类型:整数
- 单位:千字节每秒
- 是否强制:否(默认为 100,但仅在“REMOVE_SLOW”为 true 时强制执行)
允许的_尝试次数
- 定义在删除元数据之前必须捕获下载元数据被视为停止、缓慢或卡住的次数
- 类型:整数
- 单位:扫描次数
- 是否强制:否(默认为 3)
NO_STALLED_REMOVAL_QBIT_TAG
- qBittorrent 中标有此标签的下载不会被删除
- 不使用 qBittorrent 作为 torrent 管理器时,该功能不可用
- 适用于所有类型的删除(即 decluttarr 不会自动删除任何内容)
- 注意:您可能需要尝试“强制重新检查”以手动备份并运行卡住的种子
- 标签会在 qBittorrent 中自动创建(需要在
QBITTORRENT_URL
上可访问 qBittorrent) - 重要提示:还可以保护不受监控的下载不被删除(与多季包相关)
- 类型:字符串
- 是否强制:否(默认
Don't Kill
)
IGNORE_PRIVATE_TRACKERS
- 如果设置为 true,qBittorrent 中的私有 torrent 将不会从队列中删除
- 仅在使用 qBittorrent 时有效(不适用于传输等)
- 适用于所有类型的删除(即 decluttarr 不会自动删除任何内容);唯一的例外是 REMOVE_NO_FORMAT_UPGRADE,其中对于私人跟踪器,队列项目被删除(但 torrent 文件被保留)
- 注意:您可能需要尝试“强制重新检查”以手动备份并运行卡住的种子
- 类型:布尔值
- 允许值:True、False
- 是否强制:否(默认为 True)
FAILED_IMPORT_MESSAGE_PATTERNS
- 与 REMOVE_FAILED_IMPORTS 一起使用(仅当此设置为 true 时才相关)
- 定义模式,工具根据这些模式来决定是否应将包含导入警告的已完成下载视为失败
- 如果队列项的消息之一中包含任何指定模式,则队列项被视为失败
- 注意:如果留空(或未指定),则任何带有警告的此类待处理导入均被视为失败
- 类型:列表
- 建议值:[“不是现有的自定义格式升级”、“不是现有的升级”]
- 是否强制:否(默认为[],表示所有消息均失败)
雷达部分
定义应整理下载队列的radarr实例
RADARR_URL
- 可以访问实例的 URL
- 如果没有定义,则不会监控该实例
RADARR_KEY
声纳部分
定义应整理下载队列的声纳实例
SONARR_URL
- 可以访问实例的 URL
- 如果没有定义,则不会监控该实例
SONARR_KEY
激光雷达部分
定义应整理下载队列的激光雷达实例
LIDARR_URL
- 可以访问实例的 URL
- 如果没有定义,则不会监控该实例
激光雷达_KEY
读取部分
定义应整理下载队列的 readarr 实例
READARR_URL
- 可以访问实例的 URL
- 如果没有定义,则不会监控该实例
READAR_KEY
维斯帕尔区
定义whisparr实例,应在其上整理下载队列
WHISPARR_URL
- 可以访问实例的 URL
- 如果没有定义,则不会监控该实例
WHISPARR_KEY
qBittorrent 部分
定义与 qBittorrent 连接的设置如果使用不同的 torrent 管理器,请注释掉此部分(请参阅上面由此产生的功能限制)
QBITTORRENT_URL
- 可以访问实例的 URL
- 如果未定义,则 NO_STALLED_REMOVAL_QBIT_TAG 无效
QBITTORRENT_USERNAME
- 用于登录 qBittorrent 的用户名
- 选修的;如果启用了 qBittorrent 上的身份验证绕过(例如本地连接),则不需要
QBITTORRENT_PASSWORD
- 用于登录 qBittorrent 的密码
- 选修的;如果启用了 qBittorrent 上的身份验证绕过(例如本地连接),则不需要
制作人员
- 用于检测停滞下载的脚本由 MattDGTL/sonarr-radarr-queue-cleaner 扩展代码
- 用于读取通过syncarr/syncarr在代码上扩展的配置的脚本
- SONARR/RADARR 团队和贡献者在他们的 Discord 频道中提供了出色的产品、API 文档和指导
- 特别感谢他们在 API 中添加了一个额外的标志,允许此脚本检测下载卡住查找元数据
- craggles17 用于手臂兼容性
- Fxsch 改进文档/自述文件
免责声明
该脚本不提供任何保证,您使用它的风险由您自行承担