脚本过滤器允许使用一段脚本过滤出想要的节点。下面展示了一个例子,脚本过滤器函数的名称必须为 filter,否则过滤器无法生效***。***
function filter(proxies) {
// 过滤出名字含有香港等节点
return proxies.map(p => p.name.indexOf("香港") !== -1);
}
其中参数 proxies 为输入的节点列表,输出应为一个等长等 Boolean 数组,其中 true 代表选中节点,false 代表丢弃节点。上面的代码可以过滤出所有名字中包含「香港」的节点。
参数 proxies 为 Clash 标准 JSON 格式的节点列表,用户可以在 这里 找到一份详细的格式文档。
下面列出了一个常见的 Shadowsocks 格式的节点:
{
"name": "Server",
"type": "ss",
"port": 443,
"cipher": "chacha20-ietf-poly1305",
"password": "password",
"udp": true
}
Sub-Store 还提供了一些内置的 API 更方便用户编写节点。下面是一些简单的介绍。
FULL 函数可以生成一个指定长度的 Boolean 数组,常用于初始化。
利用以下代码创建了一个长度为10的全为 false 的节点。
let selected = FULL(10, false);
AND函数可以对多个 Boolean 数组进行按位「与」运算,返回一个新的 Boolean 数组。
let E = AND(A, B, C, D);
OR 函数可以对多个 Boolean 数组进行按位「或」运算,返回一个新的 Boolean 数组。