该项目可以部署到 Cloudflare Worker,用于将 Clash 订阅链接 与额外的代理节点和组进行合并。它从给定的 订阅链接URL 读取 YAML,注入指定的代理节点到现有节点中,并将这些节点添加到指定的分组中。
- 从给定的 URL 获取 YAML 订阅文件。
- 将额外的代理节点注入到订阅中。
- 将注入的节点添加到指定的代理组。
- 返回修改后的 YAML 文件。
- TypeScript
- Cloudflare Workers:用于运行 JavaScript 的无服务器平台。
- YAML:用于解析和序列化 YAML 文件。
- Base64:用于编码和解码 Base64 字符串。
-
克隆仓库:
git clone https://github.com/jrt324/clash-sub-merge-worker.git cd clash-sub-merge-worker
-
安装依赖:
npm install
-
安装 Wrangler CLI:
如果尚未安装 Wrangler CLI,请全局安装:
npm install -g wrangler
编辑 wrangler.toml
文件以匹配你的 Cloudflare 账户设置:
name = "clash-sub-merge-worker"
main = "src/index.ts"
compatibility_date = "2024-06-07"
你可以使用 Wrangler 在本地运行并测试你的 Cloudflare Worker:
wrangler dev
这将启动一个本地开发服务器,地址为 http://localhost:8787
。
要将你的 Cloudflare Worker 部署到 Cloudflare 账户,请使用以下命令:
wrangler publish
该 Worker 暴露了一个端点,接受以下查询参数:
subUrl
:YAML 订阅文件的 URL。proxies
:Base64 编码的代理配置 JSON 数组。groups
:Base64 编码的组及其对应代理的 JSON 数组。
curl "https://your-worker-url.workers.dev?subUrl=<your_subscribe_url>&proxies=<base64_encoded_proxies>&groups=<base64_encoded_groups>"
访问地址:https://clash-sub-convert-ui.pages.dev/
源码仓库:https://github.com/jrt324/clash-sub-convert-ui
代理配置的 JSON 数组:
[
{
"name": "proxy1",
"type": "vmess",
"server": "example.com",
"port": 443,
"uuid": "uuid",
"alterId": 0,
"cipher": "auto",
"tls": true
}
]
组配置的 JSON 数组:
[
{
"name": "group1",
"proxies": ["proxy1"]
}
]
使用 Base64 编码你的代理和组 JSON 数组:
const proxies = JSON.stringify([/* your proxies */]);
const groups = JSON.stringify([/* your groups */]);
const base64Proxies = btoa(proxies);
const base64Groups = btoa(groups);
console.log(base64Proxies);
console.log(base64Groups);
欢迎提交问题或拉取请求以改进或修复任何问题。
该项目使用 MIT 许可证。