# subconverter 在各种订阅格式之间进行转换的实用程序. [![Build Status](https://travis-ci.com/tindy2013/subconverter.svg?branch=master)](https://travis-ci.com/tindy2013/subconverter) - [subconverter](#subconverter) - [支持类型](#支持类型) - [用法](#用法) - [旧接口](#旧接口) - [**推荐阅读**](#推荐阅读) - [pref.ini](#prefini) - [common](#common) - [api_mode](#api_mode) - [default_url](#default_url) - [exclude_remarks](#exclude_remarks) - [include_remarks](#include_remarks) - [clash_rule_base](#clash_rule_base) - [surge_rule_base](#surge_rule_base) - [surfboard_rule_base](#surfboard_rule_base) - [rename_node](#rename_node) - [managed_config](#managed_config) - [emojis](#emojis) - [ruleset](#ruleset) - [clash_proxy_group](#clash_proxy_group) - [server](#server) - [listen](#listen) - [port](#port) - [advanced](#advanced) - [gist](#gist) ## 支持类型 | 类型 | 作为源类型 | 作为目标类型 | 参数 | | ------------ | :--------: | :----------: | ----------- | | clash | ✔ | ✔ | clash | | clashr | ✔ | ✔ | clashr | | surge2 | ✔ | ✔ | surge?ver=2 | | surge3 | ✔ | ✔ | surge?ver=3 | | surge4 | ✔ | ✔ | surge?ver=4 | | quantumult | ✔ | ✔ | quan | | quantumult X | ✔ | ✔ | quanx | | surfboard | ✔ | ✔ | surfboard | | ss | ✔ | ✔ | ss | | ssr | ✔ | ✔ | ssr | | ssd | ✔ | ✔ | ssd | | v2ray | ✔ | ✔ | v2ray | ## 用法 ``` http://127.0.0.1:25500/sub?target=clash&url=%URL_ENCODED_LINKS% http://127.0.0.1:25500/sub?target=surge&ver=4&url=%URL_ENCODED_LINKS% http://127.0.0.1:25500/sub?target=v2ray&url=%URL_ENCODED_LINKS% ``` #### 旧接口 ``` http://127.0.0.1:25500/clash?url=%URL_ENCODED_LINKS% ``` 如果你有多个订阅, 在url encode之前使用 '|' 来分隔链接.
e.g.
> 我有以下两个订阅:
`https://dler.cloud/subscribe/ABCDE?clash=vmess` `https://rich.cloud/subscribe/ABCDE?clash=vmess`

使用'|'分隔:
`https://dler.cloud/subscribe/ABCDE?clash=vmess|https://rich.cloud/subscribe/ABCDE?clash=vmess`

url encode后:
`https%3A//dler.cloud/subscribe/ABCDE%3Fclash%3Dvmess%7Chttps%3A//rich.cloud/subscribe/ABCDE%3Fclash%3Dvmess`

添加到链接后面:
`http://127.0.0.1:25500/sub?target=clash&url=https%3A//dler.cloud/subscribe/ABCDE%3Fclash%3Dvmess%7Chttps%3A//rich.cloud/subscribe/ABCDE%3Fclash%3Dvmess`

  🍖 食用 🍖

- 想学更多姿势? 来瞅瞅[pref.ini](./pref.ini). ## **推荐阅读** > - [📜 正则表达式 📜](https://zh.wikipedia.org/zh-hans/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F) > - [📝 yaml语法介绍 📝](https://zh.wikipedia.org/wiki/YAML#%E8%AA%9E%E6%B3%95) > - [❔ 提问的智慧 ❔](https://github.com/ryanhanwu/How-To-Ask-Questions-The-Smart-Way/blob/master/README-zh_CN.md) ## pref.ini ### common #### api_mode > API模式,设置为true以防止直接加载本地订阅或直接提供本地文件. 当值为`false`时, 每次更新配置都会读取`pref.ini`, 为`true`时则仅启动时读取. #### default_url > 无url参数时默认链接,不需要encode. 如果有多个链接, 使用 "|" 分隔, 支持`文件`/`url`. e.g. ```ini default_url=https://dler.cloud/subscribe/ABCDE?clash=vmess ``` 此时订阅 `http://127.0.0.1:25500/clash` 相当于:
`http://127.0.0.1:25500/sub?target=clash&url=https%3A//dler.cloud/subscribe/ABCDE%3Fclash%3Dvmess` #### exclude_remarks > 排除匹配到的节点, 支持正则. e.g. ```ini exclude_remarks=(流量|时间|官网|产品) ``` #### include_remarks > 仅保留匹配到的节点, 支持正则. e.g. ```ini include_remarks=(?<=美).*(BGP|GIA|IPLC) ``` #### clash_rule_base > 生成的clash配置文件基础. 支持`文件`/`url`. e.g. ```ini clash_rule_base=clash.yaml clash_rule_base=https://raw.githubusercontent.com/ConnersHua/Profiles/master/Clash/Pro.yaml ``` #### surge_rule_base > 生成的surge配置文件基础. 用法同上. #### surfboard_rule_base > 生成的surfboard配置文件基础. 用法同上. #### mellow_rule_base > 生成的mellow配置文件基础. 用法同上. #### rename_node > 重命名节点, 支持正则. e.g. ```ini rename_node=中国@中 rename_node=深圳@深 ``` ### managed_config > 将'#!MANAGED-CONFIG'信息附加到Surge配置. ### emojis > 在匹配到的节点前添加自定义emojis, 支持正则. e.g. ```ini rule=(流量|时间|应急),⌛time rule=(美|美国|United States),🇺🇸 ``` ### ruleset > 如果你对原本订阅自带的规则不满意可以使用如下配置 > 启用自定义规则集 `enabled=true` > 覆盖原有规则 `overwrite_original_rules=true` > 当其他程序更新订阅时更新规则集 `update_ruleset_on_request=false` > 从本地或url获取规则片段. > []前缀后的文字将被当作规则而不是链接或路径 e.g. ```ini surge_ruleset=🍎 苹果服务,https://raw.githubusercontent.com/ConnersHua/Profiles/master/Surge/Ruleset/Apple.list surge_ruleset=🎯 全球直连,rules/NobyDa/Surge/Download.list surge_ruleset=🎯 全球直连,[]GEOIP,CN ``` 效果图: ### clash_proxy_group > clash的策略组, 可用正则来筛选节点. e.g. ```ini custom_proxy_group=🇺🇸US`url-test`(美|美国|United States)`http://www.gstatic.com/generate_204`300 ``` 表示创建一个叫 usUS的url-test策略组,并向其中添加名字包含'美','美国','United States'的节点~每隔300秒测试一次~(目前硬编码固定为300) 效果图: ssr/v2订阅默认没有组名, 可以使用这个方法来添加组名. ```ini custom_proxy_group=g1`select`!!GROUPID=0 custom_proxy_group=g2`select`!!GROUPID=1 custom_proxy_group=v2ray`select`!!GROUP=V2RayProvider ``` ### server #### listen > 绑定到Web服务器的地址, 将地址设为0.0.0.0, 则局域网内设备均可使用. `listen=0.0.0.0` #### port > 绑定到Web服务器地址的端口. `port=25500` ### advanced > 无需描述. ## gist > 自动上传gist. 在[gistconf.ini](./gistconf.ini)中添加personal access token, 在链接后加上`upload=true`就会在更新好后自动上传gist.