Decluttarr高级配置:如何通过正则表达式精准过滤需要保留的下载项
【免费下载链接】decluttarrWatches radarr, sonarr, lidarr, readarr and whisparr download queues and removes downloads if they become stalled or no longer needed.项目地址: https://gitcode.com/gh_mirrors/de/decluttarr
Decluttarr是一款强大的下载队列管理工具,能够监控Radarr、Sonarr、Lidarr等下载队列,自动移除停滞或不再需要的下载项。本文将详细介绍如何通过正则表达式和高级配置,精准控制哪些下载项应该保留,帮助用户优化下载管理效率。
为什么需要精准过滤下载项?
在使用*arr系列工具(如Radarr、Sonarr)时,用户经常会遇到以下问题:
- 某些特殊格式的文件(如压缩包)被误判为"不良文件"
- 特定标签或分类的下载项需要永久保留
- 自定义错误消息的下载项需要特殊处理
- 私人 tracker 资源需要区别于公共资源处理
通过Decluttarr的高级配置功能,这些问题都可以通过灵活的规则设置来解决。
核心配置文件解析
Decluttarr的所有过滤规则都通过配置文件进行管理,主要配置文件为config/config_example.yaml。该文件包含了全局设置、作业默认值和具体作业配置三个核心部分。
全局规则设置
在配置文件的general部分,用户可以设置影响所有作业的全局规则:
general: # private_tracker_handling: "obsolete_tag" # remove, skip, obsolete_tag. Optional. Default: remove # public_tracker_handling: "remove" # remove, skip, obsolete_tag. Optional. Default: remove # obsolete_tag: "Obsolete" # optional. Default: "Obsolete" # protected_tag: "Keep" # optional. Default: "Keep"这些设置控制私有/公共 tracker 资源的处理方式,以及用于标记的特殊标签名称。
作业默认值配置
job_defaults部分定义了所有作业的通用默认值:
job_defaults: max_strikes: 3 min_days_between_searches: 7 max_concurrent_searches: 3这些参数可以在具体作业配置中被覆盖。
实用过滤规则配置实例
1. 保留压缩包文件(keep_archives)
在remove_bad_files作业中,可以通过keep_archives参数保留压缩包文件:
jobs: remove_bad_files: keep_archives: true # 保留压缩包文件启用此选项后,Decluttarr会自动保留常见的压缩格式文件,如.zip、.rar、.7z等。这项配置对应的代码逻辑在src/jobs/remove_bad_files.py中实现:
if self.job.keep_archives: # 保留压缩包文件的逻辑2. 基于标签的过滤(target_tags)
remove_done_seeding作业支持通过target_tags参数指定只处理带有特定标签的下载项:
jobs: remove_done_seeding: target_tags: - "Obsolete" # 只处理带有"Obsolete"标签的项这项功能在src/jobs/remove_done_seeding.py中实现,通过检查下载项的标签是否与目标标签列表匹配来决定是否处理。
3. 基于分类的过滤(target_categories)
除了标签,还可以通过target_categories参数基于下载分类进行过滤:
jobs: remove_done_seeding: target_categories: - "autobrr" # 只处理"autobrr"分类的下载项标签和分类过滤可以组合使用,提供更精确的控制。
4. 错误消息模式匹配(message_patterns)
remove_failed_imports作业使用message_patterns参数通过正则表达式匹配错误消息:
jobs: remove_failed_imports: message_patterns: - "Not a Custom Format upgrade for existing*" - "Not an upgrade for existing*" - "*Found potentially dangerous file with extension*" - "Invalid video file*" - "No files found are eligible for import*"这些模式使用通配符*来匹配不同的错误消息。在代码实现中(src/jobs/remove_failed_imports.py),这些模式被用于检查下载项的错误信息,决定是否需要移除。
创建自定义正则表达式规则
Decluttarr的message_patterns支持完整的正则表达式语法,这意味着用户可以创建非常精确的匹配规则。以下是一些实用的正则表达式示例:
匹配特定分辨率的视频文件
message_patterns: - ".*(1080p|2160p).*" # 匹配包含1080p或2160p的文件排除特定关键词的文件
message_patterns: - "^(?!.*sample).*$" # 排除包含"sample"关键词的文件匹配特定发布组的文件
message_patterns: - ".*(YTS|EZTV).*" # 匹配YTS或EZTV发布组的文件规则优先级与组合策略
当多个规则同时应用时,Decluttarr遵循以下优先级原则:
- 显式保护标签(protected_tag)优先级最高
- 作业级别的规则(如target_tags、target_categories)次之
- 全局规则(如private_tracker_handling)作为基础规则
建议的规则组合策略:
- 使用
protected_tag标记需要永久保留的下载项 - 为不同类型的下载项创建专用标签(如"Keep-Archive"、"Keep-Seeding")
- 对不同的作业使用不同的过滤规则,避免规则冲突
测试与验证配置
配置完成后,建议通过以下步骤验证规则是否生效:
将
general部分的test_run设置为true:general: test_run: true这将启用测试模式,Decluttarr会记录操作但不会实际删除文件。
检查日志文件,确认过滤规则按预期工作
测试满意后,将
test_run设置为false,启用实际操作
常见问题与解决方案
Q: 如何确保重要文件不会被误删?
A: 使用protected_tag参数,为重要文件添加保护标签,如"Keep"。相关代码在src/settings/_jobs.py中处理。
Q: 正则表达式不生效怎么办?
A: 检查是否正确使用了正则表达式语法,特别是特殊字符是否需要转义。可以使用在线正则测试工具验证表达式。
Q: 如何为不同的*arr实例设置不同的规则?
A: 在instances部分为每个实例单独配置参数,实现精细化管理。
通过本文介绍的配置方法,用户可以充分利用Decluttarr的强大过滤功能,实现下载项的精准管理。无论是简单的标签过滤还是复杂的正则表达式匹配,Decluttarr都能满足您的个性化需求,让下载管理更加高效和智能。
【免费下载链接】decluttarrWatches radarr, sonarr, lidarr, readarr and whisparr download queues and removes downloads if they become stalled or no longer needed.项目地址: https://gitcode.com/gh_mirrors/de/decluttarr
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考