diff --git a/API.md b/API.md index 96af2ed..6b163c5 100644 --- a/API.md +++ b/API.md @@ -1,21 +1,48 @@ -# `GET /clash`, `GET /meta` +# `GET /convert/:config` 获取 Clash/Clash.Meta 配置链接 -| Query 参数 | 类型 | 是否必须 | 默认值 | 说明 | -| ------------ | ------ | ------------------------ | --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| sub | string | sub/proxy 至少有一项存在 | - | 订阅链接,可以在链接结尾加上`#名称`,来给订阅中的节点加上统一前缀(可以输入多个,用 `,` 分隔) | -| proxy | string | sub/proxy 至少有一项存在 | - | 节点分享链接(可以输入多个,用 `,` 分隔) | -| refresh | bool | 否 | `false` | 强制刷新配置(默认缓存 5 分钟) | -| template | string | 否 | - | 外部模板链接或内部模板名称 | -| ruleProvider | string | 否 | - | 格式 `[Behavior,Url,Group,Prepend,Name],[Behavior,Url,Group,Prepend,Name]...`,其中 `Group` 是该规则集使用的策略组名,`Prepend` 为 bool 类型,如果为 `true` 规则将被添加到规则列表顶部,否则添加到规则列表底部(会调整到 MATCH 规则之前) | -| rule | string | 否 | - | 格式 `[Rule,Prepend],[Rule,Prepend]...`,其中 `Prepend` 为 bool 类型,如果为 `true` 规则将被添加到规则列表顶部,否则添加到规则列表底部(会调整到 MATCH 规则之前) | -| autoTest | bool | 否 | `false` | 国家策略组是否自动测速 | -| lazy | bool | 否 | `false` | 自动测速是否启用 lazy | -| sort | string | 否 | `nameasc` | 国家策略组排序策略,可选值 `nameasc`、`namedesc`、`sizeasc`、`sizedesc` | -| replace | string | 否 | - | 通过正则表达式重命名节点,格式 `[,],[,]...` | -| remove | string | 否 | - | 通过正则表达式删除节点 | -| nodeList | bool | 否 | `false` | 只输出节点 | +| Path 参数 | 类型 | 说明 | +| --------- | ------ | ---------------------------------------------- | +| config | string | Base64 URL Safe 编码后的 JSON 字符串,格式如下 | + +## `config` JSON 结构 + +| Query 参数 | 类型 | 是否必须 | 默认值 | 说明 | +| ------------------ | ----------------- | ------------------------ | --------- | --------------------------------------------------------------------------------- | +| clashType | int | 是 | 1 | 配置文件类型 (1: Clash, 2: Clash.Meta) | +| subscriptions | []string | sub/proxy 至少有一项存在 | - | 订阅链接,可以在链接结尾加上`#名称`,来给订阅中的节点加上统一前缀(可以输入多个) | +| proxies | []string | sub/proxy 至少有一项存在 | - | 节点分享链接(可以输入多个) | +| refresh | bool | 否 | `false` | 强制刷新配置(默认缓存 5 分钟) | +| template | string | 否 | - | 外部模板链接或内部模板名称 | +| ruleProviders | []RuleProvider | 否 | - | 规则 | +| rules | []Rule | 否 | - | 规则 | +| autoTest | bool | 否 | `false` | 国家策略组是否自动测速 | +| lazy | bool | 否 | `false` | 自动测速是否启用 lazy | +| sort | string | 否 | `nameasc` | 国家策略组排序策略,可选值 `nameasc`、`namedesc`、`sizeasc`、`sizedesc` | +| replace | map[string]string | 否 | - | 通过正则表达式重命名节点 | +| remove | string | 否 | - | 通过正则表达式删除节点 | +| nodeList | bool | 否 | `false` | 只输出节点 | +| ignoreCountryGroup | bool | 否 | `false` | 是否忽略国家分组 | +| userAgent | string | 否 | - | 订阅 user-agent | +| useUDP | bool | 否 | `false` | 是否使用 UDP | + +### `RuleProvider` 结构 + +| 字段 | 类型 | 说明 | +| -------- | ------ | ---------------------------------------------------------------- | +| behavior | string | rule-set 的 behavior | +| url | string | rule-set 的 url | +| group | string | 该规则集使用的策略组名 | +| prepend | bool | 如果为 `true` 规则将被添加到规则列表顶部,否则添加到规则列表底部 | +| name | string | 该 rule-provider 的名称,不能重复 | + +### `Rule` 结构 + +| 字段 | 类型 | 说明 | +| ------- | ------ | ---------------------------------------------------------------- | +| rule | string | 规则 | +| prepend | bool | 如果为 `true` 规则将被添加到规则列表顶部,否则添加到规则列表底部 | # `POST /short`