Filter
过滤规则(声明式语法)。在 filter.yaml 中定义,被 provider 的 filter 列表、请求级规则覆盖(/app/read/l)与模板 filter filter(rules= kwarg)按键名引用,依次应用。
每条规则值为三种形状之一:
- 裸字符串简写:
contain匹配任一|分隔关键字,忽略大小写(最常用) - 单个匹配器 mapping
- 匹配器 mapping 列表:顺序应用,代理必须命中全部(AND)
匹配器
| 键 | 值 | 说明 |
|---|---|---|
contain | 字符串或字符串数组 | 名称包含任一关键字(数组 = OR,等价 ` |
start | 字符串 | 名称以关键字开头 |
end | 字符串 | 名称以关键字结尾 |
type | 字符串 | 按代理协议类型过滤(ss, vmess, trojan 等) |
regex | 字符串 | 按正则匹配代理名 |
共享选项
| 键 | 缺省 | 说明 |
|---|---|---|
ignore_case | true | 忽略大小写 |
negate | false | 反转:命中则剔除 |
限制:列表(AND)仅支持 contain/start/end 匹配器;type/regex 只能单条使用。每个 mapping 必须恰好一个匹配器键。
example
filter.yaml
# 简写:保留名称包含任一关键字的代理(忽略大小写)
us: "美国|United States|American"
# 排除(negate)
rm_netease:
- contain: [netease, unblock, music]
negate: true
# 名称开头
hk_prefix:
- start: HK
# 类型过滤
vmess_only:
- type: vmess
# 正则
custom:
- regex: '\W+(US|us|United States)\W+'
# 多条规则顺序应用(AND)
strict:
- contain: [美国]
- start: HK