-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy path_conf_schema.json
More file actions
444 lines (444 loc) · 14.3 KB
/
_conf_schema.json
File metadata and controls
444 lines (444 loc) · 14.3 KB
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
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
{
"basic_config": {
"type": "object",
"description": "基础设施配置",
"hint": "启动级去重、队列与订阅策略配置",
"items": {
"rsshub_base_url": {
"type": "string",
"description": "默认订阅域名",
"hint": "用于相对路由拼接的默认域名,当使用uri方式订阅时生效",
"default": "https://rsshub.app"
},
"minimal_interval": {
"type": "int",
"description": "订阅最小监控间隔(分钟)",
"hint": "限制单个订阅监控间隔的最小值",
"default": 1,
"slider": {
"min": 1,
"max": 1440,
"step": 1
}
},
"hash_history_min": {
"type": "int",
"description": "去重历史最小保留数量",
"hint": "单个 Feed 的去重哈希最小保留数",
"default": 200,
"slider": {
"min": 1,
"max": 20000,
"step": 50
}
},
"hash_history_multiplier": {
"type": "int",
"description": "去重历史增长倍数",
"hint": "按抓取条目数扩展去重窗口的倍数",
"default": 2,
"slider": {
"min": 1,
"max": 100,
"step": 1
}
},
"hash_history_hard_limit": {
"type": "int",
"description": "去重历史硬上限",
"hint": "单个 Feed 的去重哈希上限",
"default": 5000,
"slider": {
"min": 1,
"max": 20000,
"step": 100
}
},
"tracking_query_params": {
"type": "list",
"description": "链接去重时忽略的查询参数",
"hint": "用于清理常见追踪参数",
"default": [
"utm_source",
"utm_medium",
"utm_campaign",
"utm_term",
"utm_content",
"utm_id",
"gclid",
"fbclid",
"mc_cid",
"mc_eid",
"spm",
"ref",
"ref_src"
]
},
"failed_queue_capacity": {
"type": "int",
"description": "失败队列容量",
"hint": "平台发送失败时的队列容量",
"default": 50,
"slider": {
"min": 0,
"max": 1000,
"step": 10
}
},
"failed_queue_max_retries": {
"type": "int",
"description": "失败队列最大重试次数",
"hint": "失败消息的最大重试次数",
"default": 3,
"slider": {
"min": 0,
"max": 10,
"step": 1
}
},
"deduplicate_multi_bot": {
"type": "bool",
"description": "单会话多 BOT 去重",
"hint": "同会话多 BOT 订阅相同源时是否去重",
"default": true
},
"bootstrap_skip_history": {
"type": "bool",
"description": "首轮跳过历史条目",
"hint": "首次监控是否跳过历史条目",
"default": true
},
"history_entry_limit": {
"type": "int",
"description": "历史条目推送限制",
"hint": "单次推送的历史条目上限",
"default": 0,
"slider": {
"min": 0,
"max": 500,
"step": 1
}
}
}
},
"http_config": {
"type": "object",
"description": "HTTP 网络配置",
"hint": "控制 RSS 拉取、媒体下载与 FFmpeg HLS 下载使用的代理和超时",
"items": {
"proxy": {
"type": "string",
"description": "代理地址",
"hint": "HTTP/SOCKS 代理地址,留空表示直连;裸 host:port 会按 http://host:port 处理",
"default": ""
},
"timeout": {
"type": "int",
"description": "请求超时(秒)",
"hint": "拉取 RSS 源和普通 HTTP 请求的超时",
"default": 30,
"slider": {
"min": 1,
"max": 300,
"step": 1
}
},
"media_timeout": {
"type": "int",
"description": "媒体下载超时(秒)",
"hint": "媒体预下载、m3u8/HLS 合并与 FFmpeg 下载的最大等待时间",
"default": 300,
"slider": {
"min": 1,
"max": 1800,
"step": 1
}
}
}
},
"media": {
"type": "object",
"description": "媒体配置",
"hint": "控制媒体反代、预下载并发、表格转图和 FFmpeg 转码",
"items": {
"image_relay_base_url": {
"type": "string",
"description": "图片反代 Base URL",
"hint": "用于图片预下载的反代地址,支持 https://wsrv.nl/ 或 https://wsrv.nl/?url=;留空关闭",
"default": ""
},
"media_relay_base_url": {
"type": "string",
"description": "媒体反代 Base URL",
"hint": "用于非图片媒体或图片反代未配置时的通用反代地址,例如 https://relay.example/;留空关闭",
"default": ""
},
"media_download_concurrency": {
"type": "int",
"description": "媒体预下载并发数",
"hint": "同一条推送内远程媒体预下载并发数,1 表示保持串行",
"default": 1,
"slider": {
"min": 1,
"max": 32,
"step": 1
}
},
"table_to_image": {
"type": "bool",
"description": "表格转图片",
"hint": "开启后 HTML 表格优先渲染为图片;关闭后直接使用文本表格 fallback",
"default": true
},
"video_transcode": {
"type": "bool",
"description": "视频发送前自动转码",
"hint": "发送视频前是否自动转码为兼容 MP4",
"default": false
},
"video_transcode_timeout": {
"type": "int",
"description": "视频转码超时(秒)",
"hint": "视频转码的最大允许时间",
"default": 120,
"slider": {
"min": 10,
"max": 1800,
"step": 10
}
},
"gif_transcode": {
"type": "bool",
"description": "无声视频自动转 GIF",
"hint": "无声视频是否自动转 GIF",
"default": false
},
"gif_transcode_timeout": {
"type": "int",
"description": "GIF转换超时(秒)",
"hint": "视频转 GIF 的最大允许时间",
"default": 60,
"slider": {
"min": 10,
"max": 1800,
"step": 10
}
}
}
},
"sender_strategies": {
"type": "object",
"description": "平台发送策略配置",
"hint": "选择启用专用发送策略的平台;未选择的平台使用默认发送器。平台策略使用一个统一模板列表按需添加,模板类型可不同;同类模板当前只读取第一条。",
"items": {
"enabled_platforms": {
"type": "list",
"description": "启用的平台发送策略",
"hint": "选择需要启用专用发送策略的平台;未选择的平台使用默认发送器",
"default": [
"telegram",
"aiocqhttp",
"qq_official"
],
"options": [
"telegram",
"aiocqhttp",
"qq_official"
],
"items": {
"type": "string"
}
},
"platform_strategies": {
"type": "template_list",
"description": "平台策略模板",
"hint": "按需添加 Telegram / OneBot / QQ 官方策略模板;同类模板当前只读取第一条,多条同类模板会被忽略。",
"default": [],
"templates": {
"telegram_strategy": {
"name": "Telegram 策略",
"hint": "Telegraph 自动分流策略",
"items": {
"telegraph_proxy": {
"type": "string",
"description": "Telegraph API 代理",
"hint": "仅用于 Telegraph createPage API,留空表示直连且不继承 HTTP 网络代理;裸 host:port 会按 http://host:port 处理",
"default": ""
},
"enable_telegraph": {
"type": "bool",
"description": "启用 Telegraph 自动分流",
"default": false
},
"telegraph_token": {
"type": "string",
"description": "Telegraph Access Token",
"default": ""
}
}
},
"onebot_strategy": {
"name": "OneBot 策略",
"hint": "OneBot / NapCat 视频发送策略",
"items": {
"napcat_stream_mode": {
"type": "string",
"description": "NapCat 流式上传",
"hint": "disabled=不用流式上传,fallback=普通发送失败后流式重试,always=发送前优先流式上传。",
"default": "fallback",
"options": ["disabled", "fallback", "always"]
}
}
},
"qq_official_strategy": {
"name": "QQ 官方策略",
"hint": "QQ 官方 Markdown 发送策略",
"items": {
"markdown_mode": {
"type": "string",
"description": "Markdown 发送模式",
"hint": "auto 跟随平台默认;force 强制 Markdown;plain 强制纯文本",
"default": "auto",
"options": [
"auto",
"force",
"plain"
]
}
}
}
}
}
}
},
"route_knowledge": {
"type": "object",
"description": "RSSHub Routes 知识库",
"hint": "配置 RSSHub Routes 文档同步到 AstrBot 知识库的来源与模型",
"items": {
"kb_name": {
"type": "string",
"description": "知识库名称",
"hint": "同步目标 AstrBot 知识库名称;不存在时可由 /rsshub_kb_init 自动创建",
"default": "RSSHub Routes"
},
"embedding_provider_id": {
"type": "string",
"description": "向量模型 Provider ID",
"_special": "select_provider:embedding",
"hint": "用于自动创建 RSSHub Routes 知识库的 Embedding Provider。留空则使用当前第一个可用的 Embedding Provider",
"default": ""
},
"rerank_provider_id": {
"type": "string",
"description": "重排序模型 Provider ID",
"_special": "select_provider:rerank",
"hint": "用于自动创建或补齐 RSSHub Routes 知识库的 Rerank Provider。留空则使用当前第一个可用的 Rerank Provider;没有可用 Rerank Provider 时保持关闭",
"default": ""
},
"source_mode": {
"type": "string",
"description": "同步来源模式",
"hint": "mirror 使用 source_base_url;auto 失败后尝试 fallback_base_url;github 使用内置 GitHub Raw;local 从本地目录读取",
"default": "mirror",
"options": [
"mirror",
"auto",
"github",
"local"
]
},
"source_base_url": {
"type": "string",
"description": "同步源 Base URL",
"hint": "包含 metadata.json、index/ 和 docs/ 的 raw 文件根地址;请选择已适配当前拼接规则的来源",
"default": "https://raw.githubusercontent.com/FlanChanXwO/rsshub-routes-knowledgebase/main",
"options": [
"https://raw.githubusercontent.com/FlanChanXwO/rsshub-routes-knowledgebase/main",
"https://ghfast.top/https://raw.githubusercontent.com/FlanChanXwO/rsshub-routes-knowledgebase/main"
]
},
"fallback_base_url": {
"type": "string",
"description": "备用 Base URL",
"hint": "source_mode=auto 时 source_base_url 失败后使用;请选择已适配当前拼接规则的来源",
"default": "https://raw.githubusercontent.com/FlanChanXwO/rsshub-routes-knowledgebase/main",
"options": [
"https://raw.githubusercontent.com/FlanChanXwO/rsshub-routes-knowledgebase/main",
"https://ghfast.top/https://raw.githubusercontent.com/FlanChanXwO/rsshub-routes-knowledgebase/main"
]
},
"local_source_dir": {
"type": "string",
"description": "本地同步目录",
"hint": "source_mode=local 时使用,目录内应包含 metadata.json、index/ 和 docs/",
"default": ""
},
"timeout": {
"type": "int",
"description": "同步请求超时(秒)",
"hint": "下载 metadata 和 Markdown 文件的请求超时",
"default": 30,
"slider": {
"min": 1,
"max": 300,
"step": 1
}
},
"batch_size": {
"type": "int",
"description": "Embedding 批大小",
"hint": "传给 AstrBot 知识库上传接口的 batch_size",
"default": 32,
"slider": {
"min": 1,
"max": 256,
"step": 1
}
},
"tasks_limit": {
"type": "int",
"description": "Embedding 并发数",
"hint": "传给 AstrBot 知识库上传接口的 tasks_limit",
"default": 3,
"slider": {
"min": 1,
"max": 32,
"step": 1
}
},
"max_retries": {
"type": "int",
"description": "Embedding 重试次数",
"hint": "传给 AstrBot 知识库上传接口的 max_retries",
"default": 3,
"slider": {
"min": 0,
"max": 10,
"step": 1
}
}
}
},
"content_handlers": {
"type": "object",
"description": "内容处理器全局 AI 配置",
"hint": "供内置 ai_filter / ai_transform 使用;API Key 仍由 AstrBot Provider 管理,插件只保存 Provider 与人格 ID",
"items": {
"ai_provider_id": {
"type": "string",
"description": "AI 内容处理 Provider",
"_special": "select_provider",
"hint": "留空时使用当前会话正在使用的对话模型 Provider",
"default": ""
},
"ai_persona_id": {
"type": "string",
"description": "AI 内容处理人格",
"_special": "select_persona",
"hint": "可选;选择后仅把该人格 system prompt 注入内置 AI handler,不改变会话人格",
"default": ""
}
}
}
}