简介

脚本过滤器允许使用一段脚本过滤出想要的节点。下面展示了一个例子,脚本过滤器函数的名称必须为 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
}

API

Sub-Store 还提供了一些内置的 API 更方便用户编写节点。下面是一些简单的介绍。

1. FULL

FULL 函数可以生成一个指定长度的 Boolean 数组,常用于初始化。

示例代码

利用以下代码创建了一个长度为10的全为 false 的节点。

let selected = FULL(10, false);

2. AND

AND函数可以对多个 Boolean 数组进行按位「与」运算,返回一个新的 Boolean 数组。

let E = AND(A, B, C, D);

3. OR

OR 函数可以对多个 Boolean 数组进行按位「或」运算,返回一个新的 Boolean 数组。