clash icon indicating copy to clipboard operation
clash copied to clipboard

[Feature] 【proxy-groups】通过正则筛选的方式生成 group

Open krkrchan opened this issue 2 years ago • 12 comments

Description

类似于 Quantumult X 中 [policy] 策略组,它能通过正则筛选的方式生成一个策略组:

static=policy-name-5, resource-tag-regex=^sample, server-tag-regex=^example, img-url=http://example.com/icon.png
筛选出订阅名含有example且节点名含有sample的节点,组成一个策略组,名为policy-name-5

希望 clash 的配置文件也能退出类似功能,生成group。如:

proxy-groups:
  - name: HK节点
    type: select
    filter: HK|港

但我也没很好的想到,怎么在 filter 里加入同时对订阅和节点名的筛选。 比如说【proxy-providers】我有三个订阅,名为A、B、C,我想筛选A和B里名字含有“HK”的节点。 希望有大佬可以优化一下。

krkrchan avatar Aug 04 '22 14:08 krkrchan

这个也许可以用脚本实现 https://github.com/felinae98/clashup/

QiangF avatar Aug 11 '22 12:08 QiangF

filter支持正则筛选,是你写的不对,|在YAML中有其他作用,要想表达带有|的字符需要带上引号,试试filter: 'HK|港' 详细内容可以看 #1511

zam157 avatar Aug 11 '22 12:08 zam157

没搞明白,一般从网上下载一个机场yaml订阅文件,直接把那个文件放在这里吗?

path: ./Proxies/AAA.yaml

QiangF avatar Aug 11 '22 13:08 QiangF

好像还是要处理一下啊

QiangF avatar Aug 11 '22 13:08 QiangF

不好意思我没仔细看你的描述,filter是在~proxy-groups~proxy-providers中提供的

不知道这样能不能满足你的需求

proxy-groups:
  - name: HK节点
    type: select
    use: [hk_B, hk_B]

proxy-providers:
  A:
    # ...
    path: ./providers/A.yaml
  B:
    # ...
    path: ./providers/B.yaml
  C:
    # ...
    path: ./providers/C.yaml
  hk_A:
    type: file
    filter: 'HK|港'
    path: ./providers/A.yaml
  hk_B:
    type: file
    filter: 'HK|港'
    path: ./providers/B.yaml

(不过这么写确实还是很麻烦😅

zam157 avatar Aug 11 '22 13:08 zam157

你这样子很麻烦,也很浪费资源吧。

假如机场订阅里有港台新日韩等等地区,为了能分别集合为各自的proxy-groups,我要不停的重复从远端的同一个订阅连接下载文件,再筛选,再在本地生成好几个yaml,再引用yaml生成proxy-groups。

我希望是从从远端订阅连接只下载一次文件,然后在本地由正则筛选,生成不同的proxy-groups。

qx 就是这种逻辑。我觉得这种解决办法会好很多。

krkrchan avatar Aug 12 '22 04:08 krkrchan

你这样子很麻烦,也很浪费资源吧。

假如机场订阅里有港台新日韩等等地区,为了能分别集合为各自的proxy-groups,我要不停的重复从远端的同一个订阅连接下载文件,再筛选,再在本地生成好几个yaml,再引用yaml生成proxy-groups。

我希望是从从远端订阅连接只下载一次文件,然后在本地由正则筛选,生成不同的proxy-groups。

qx 就是这种逻辑。我觉得这种解决办法会好很多。

并不是这样的。一个订阅只会请求一次,typefile的provider项只会读取对应path目录下的配置文件(比如hk_A会读取A.yaml这个文件而不是重新请求一遍)

zam157 avatar Aug 12 '22 04:08 zam157

要是嫌配置麻烦,建议换Clash Meta,它的proxy-groups配置项支持filter,完美契合你的需求

zam157 avatar Aug 12 '22 04:08 zam157

大佬们问下,怎么反向筛选?假设我输入HK除了带HK的其他都显示

jaychin2 avatar Sep 17 '22 09:09 jaychin2

还有就是groups能不能筛选providers里的节点?不然同一个订阅想区分节点要输入N次正则筛选

jaychin2 avatar Sep 17 '22 09:09 jaychin2

自己写了rule-provider、proxy-provider

为何web进不去呢?求解 clash.razord.top就打不开了。机场可以

jaychin2 avatar Sep 17 '22 13:09 jaychin2