术语表和校验脚本跟上订阅副本的 file 实现

订阅副本改成 type: file 后,认亲靠 path 而不是 url,脚本里解构已不存在的
url 字段会拿到 undefined;术语表补上 0007 引入的专属组、链式代理、入口组、
订阅副本四个词条,并移除已被取代的筛选组。
This commit is contained in:
2026-08-11 14:38:51 +08:00
parent e9e2eb555d
commit 49038ce5f9
2 changed files with 18 additions and 6 deletions
+15 -3
View File
@@ -52,9 +52,21 @@ _Avoid_: provider、机场、订阅链接、节点池
一组线路加一个挑选方式(手动选、自动测速选最快等)。策略组本身也可以作为出站被引用。 一组线路加一个挑选方式(手动选、自动测速选最快等)。策略组本身也可以作为出站被引用。
_Avoid_: 分组、group、代理组、策略 _Avoid_: 分组、group、代理组、策略
**筛选组**: **专属组**:
Patchbay 自动创建的策略组,用筛选条件从订阅里只挑出用户指定的那几条线路。它的存在是为了让入站能固定到具体线路——因为订阅线路无法被直接引用。 Patchbay 为一路入站自动创建的三个策略组:手动选的 SELECT、自动测速的 AUTO、故障转移的 FALLBACK。入站的 `proxy:` 永久指向 SELECT,日常换线是改 SELECT 的当前选中,属于运行时动作,不改配置文件。名字带 `patchbay:` 前缀。
_Avoid_: 隐藏组、临时组、影子组 _Avoid_: 筛选组、隐藏组、影子组、自动组
**链式代理**:
让一路入站的流量先经过一跳入口,再从出口线路离开。在订阅副本上用 `override.dialer-proxy` 实现,因为内核不接受写在策略组上的 `dialer-proxy`。
_Avoid_: 中转、前置代理、relay
**入口组**:
链式代理的入口,一个手动选的策略组,订阅副本的 `dialer-proxy` 指向它。它只能引用原订阅,不能引用订阅副本,否则会形成内核查不出来的环。
_Avoid_: 前置组、跳板组
**订阅副本**:
开链式代理时,Patchbay 按「入站乘以来源订阅」的组合生成的订阅。`type: file`,读原订阅的缓存文件,带上指向入口组的 `dialer-proxy`。它不联网,原订阅刷新后内核的文件监视让它自动跟上。和哪个用户订阅共用同一个缓存文件,来源就是哪个。
_Avoid_: 派生订阅、克隆订阅、镜像订阅
## 名字与引用 ## 名字与引用
+3 -3
View File
@@ -41,9 +41,9 @@ writeFileSync(out, rewriteYaml(source, pruneGenerated(next)), 'utf8')
console.log('生成的策略组:') console.log('生成的策略组:')
console.log(JSON.stringify(next['proxy-groups'], null, 2)) console.log(JSON.stringify(next['proxy-groups'], null, 2))
console.log('\n生成的订阅副本(只看结构,url 不回显):') // 副本是 type: file,makeChainProvider 已去掉 url,整条回显没有泄露订阅地址的风险
console.log('\n生成的订阅副本:')
for (const [name, entry] of Object.entries(next['proxy-providers'] as ConfigObject)) { for (const [name, entry] of Object.entries(next['proxy-providers'] as ConfigObject)) {
if (!name.startsWith('patchbay:')) continue if (!name.startsWith('patchbay:')) continue
const { url, ...rest } = entry as ConfigObject console.log(name, JSON.stringify(entry))
console.log(name, JSON.stringify({ ...rest, url: '<同源订阅>' }))
} }