-
Notifications
You must be signed in to change notification settings - Fork 2
/
config-example.yaml
173 lines (172 loc) · 5.7 KB
/
config-example.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
components:
#触发器
trigger:
- type: fixed
name: 20min
props:
interval: PT20M
on-start-run-tasks: true
#源
source:
#类型
- type: rss
#组件名称
name: mikan
#属性
props:
url: https://test.com
#变量提供器
variable-provider:
- type: mikan
name: mikan
#item文件解析器
item-file-resolver:
- type: fanbox
name: fanbox
#下载器
downloader:
- type: qbittorrent
name: qbittorrent
props:
url: http://truenas:10095
username: admin
password: adminadmin
download-path: /mnt/bangumi
#文件移动器
file-mover:
- type: qbittorrent
name: qbittorrent
#完成后运行
process-listener:
- type: http
name: n8n-webhook-telegram-message
props:
method: POST
url: "http://truenas:5678/webhook/telegram-notify?message=番剧 {summary}下载完成"
#SourceItem过滤器
item-filter:
#省略...
#SourceFile过滤器
file-filter:
#省略..
processors:
#处理器名称
- name: processor-bangumi
#触发器支持多个
triggers:
- webhook
- fixed:20min
#引用要处理的源组件
source: system-file
#引用变量提供组件,支持多个
variable-provider:
- "ai:gpt"
#引用item文件解析组件
item-file-resolver: system-file
#引用下载器
downloader: system-file
#引用文件移动器
file-mover: general
#保存路径
save-path: /mnt/bangumi
#选项
options:
#保存路径模板,默认:原路径
save-path-pattern: "{parent}"
#文件名模板,默认:原文件名
filename-pattern: "S{season}E{episode}-{sequence}"
#命名完成后运行的组件,支持多个
process-listeners:
- "touch-item-directory"
- "clean-empty-directory"
- "http:n8n-webhook-telegram-message"
#重命名间隔时间,参考java.time.Duration的格式,只有处理器是AsyncDownloader类型才生效,默认:PT5M(5分钟)
rename-task-interval: PT2M
#下载选项,具体看downloader实现,有些定义了也没意义
download-options:
#类目
category: Bangumi
#标签
tags:
- "processor-bangumi"
#变量冲突时的处理策略,默认:SMART
#ANY:任意挑选
#VOTE:挑选值最多的,比如provider1-3,1和2都给了"02",3给了"01"则会选"02"来命名
#ACCURACY:覆盖,提供者会有准确度的属性,按照最高的来
#SMART:VOTE+ACCURACY
variable-conflict-strategy: SMART
#重命名失败次数阈值,默认:3
rename-times-threshold: 3
#保存SourceItem的处理信息
save-processing-content: true
#CEL表达式过滤SourceItem,任意一个为true则过滤
item-expression-exclusions:
- "item.title.matches('720(?!)P')"
- "item.title.matches('中文配音')"
#CEL表达式过滤sourceItem,任意一个为false则过滤,支持变量title,contentType,date(yyyy-MM-dd),link
item-expression-inclusions:
- "item.datetime > timestamp('2023-03-30T00:00:00Z')"
#CEL表达式过滤sourceFile,任意一个为true则过滤,支持filename,size,contentType
file-expression-exclusions:
#文件大小小于1MB的
- "item.attrs.size > 1024 * 1024"
#CEL表达式过滤sourceFile,任意一个为false则过滤
file-expression-inclusions:
#文件名包含test的
- "file.name.contains('test')"
#定义的模板变量不存在时的处理策略,默认:USE_ORIGINAL_FILENAME
#USE_ORIGINAL_FILENAME:使用原文件名
#USE_PATTERN:使用模板
#STAY:不移动留在downloadPath下
parsing-failed-strategy: USE_ORIGINAL_FILENAME
#在process-listeners添加touch-item-directory组件,默认:true
touch-item-directory: true
#在process-listeners添加clean-empty-directory组件,默认:true
clean-empty-directory: true
#变量提供者中的变量名映射
variables-name-mapping:
seasonNumber: season
anitomEpisode: episode
#给文件打上标记
file-taggers:
- "simple"
#给特定标签的文件有单独的文件名模版,如果不存在则默认使用filename-pattern
tagged-file-options:
video:
filename-pattern: "S{season}E{episode}"
subtitle:
filename-pattern: "S{season}E{episode}.{language}"
#变量命名失败时的处理策略,默认:STAY (但可能会收到FileMover实现的影响,比如BT客户端)
variable-error-strategy: STAY
#重命名后是否删除对应SourceItem的空目录,默认:true
delete-empty-directory: true
#SourceItem过滤器,使用组件引用的方式
item-filters:
- "test"
#FileContent过滤器,使用组件引用的方式
file-filters:
- "anime"
#替换变量提供者的变量名
variable-name-replace:
episodeAlt: episode
seasonNumber: season
#替换变量值
variable-replacers:
# 对应组件引用
- id: full-width
# 选择替换的变量名
keys: [ "variable_name1" ]
#正则变量替换
regex-variable-replacers:
- regex: "(?i)^BDRIP$"
replacement: BD
#每次从Source获取SourceItem的条数,具体看Source实现不能保证一定是其设定的条数
fetch-limit: 50
#替换文件的策略组件
file-replacement-decider: never
#可重试异常重试间隔
retry-backoff-mills: 5000
#并行处理数
parallelism: 1
#item处理失败后是否继续处理后续item,并行数大于1时不一定能保证
item-error-continue: false