Skip to content

[perf]: 增加对节点的排序功能 #145

Open
@yanghao5

Description

@yanghao5

我自己手搓了一个,在实现中发现,之前我提到的 mixed 字段没什么用,完全可以删掉
只留下 sort_helper.py 方式,和前两种的方式都是类似的

增加 sort_helper.py

providers.json 中增加一个 sort 字段(array)

  • range 表明排序的范围
    • 它的值是由带有 outbound 字段的 outboundstag 组成,不同的 outboudns 之间用 | 隔开
    • outbounds 包含的 outbound 的内容(可能是节点,也可能是嵌套的另一个 outbounds)排序
  • keywords 一个关键字数组,定义排序顺序
    • others 代表没有被关键字匹配的节点
    • 如果某一个节点可以被多个关键字匹配,优先使用顺序在前的关键字
    • 比如说 「新加坡亚马逊专线」 可以被 亚马逊专线 两个关键字匹配,我们将其匹配到 专线
    "subscribes": [...],

     ...

    "sort": [
        {
            "range": "Proxy",
            "keywords": [
                "auto",
                "direct",
                "🇭🇰|HK|hk|香港|港|HongKong",
                "🇹🇼|TW|tw|台湾|臺灣|台|Taiwan",
                "🇸🇬|SG|sg|新加坡|狮|Singapore",
                "🇯🇵|JP|jp|日本|日|Japan",
                "🇺🇸|US|us|美国|美|United States",
                "others"
            ]
        },
        {
            "range": "Japan|Singapore|HongKong|TaiWan|America",
            "keywords": [
                "专线",
                "亚马逊",
                "搬瓦工",
                "0.1倍率",
                "IPv6|ipv6",
                "others"
            ]
        }
    ]

完整性要求

  • 我保证阅读了reademe文档,了解所有sing-box-subscrib使用参数的含义与工作流程。
  • 我保证转换的订阅链接可以在浏览器打开,并且有内容。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions