Skip to content

功能建议:节点名正则过滤规则支持反向/排除规则 #58

Description

@tossp

首先感谢作者开发和维护 Resin,这个项目在节点筛选和平台隔离这块做得很实用。

目前在「平台管理」中,平台支持两类筛选规则:

  • 节点名正则过滤规则
  • 地区过滤规则

其中地区过滤规则已经支持正向和反向筛选,这一点很好用。
不过节点名正则过滤规则目前看起来只支持正向筛选,所以想提一个小建议:是否可以考虑在后续版本中,也为节点名正则过滤规则增加反向/排除能力。

我的使用场景是这样的:

有些订阅组整体不太干净,里面虽然也有可用节点,但混杂了一些我不希望进入平台池的节点。
这种情况下,我更希望能按照节点名前缀或命名特征,直接把某一类节点整组排除掉。

例如我会有这样的需求:

  • 排除 cfst 开头的节点
  • 排除 NR 开头的节点

也就是类似:

  • ^cfst
  • ^NR

但现在节点名正则过滤规则更适合表达“要保留哪些节点”,不太方便直接表达“要排除哪些节点”。
另外因为底层使用的是 Go regexp(RE2),也不能通过负向前瞻这类写法来比较自然地实现排除逻辑,所以实际使用时会有些受限。

如果方便的话,想请问后续是否可以考虑支持类似下面的能力:

  1. 新增单独的排除字段,例如 exclude_regex_filters
  2. 或者在现有节点名正则过滤规则中增加明确的反向语义

如果采用独立字段,效果大概类似:

{
  "regex_filters": [],
  "exclude_regex_filters": ["^cfst", "^NR"]
}

这样会比较适合这类场景:

  • 某些订阅组整体质量不稳定,希望按命名特征整组排除
  • 只想去掉少量特定前缀节点,不想重写整套正向筛选规则
  • 与地区过滤规则现有的正向/反向能力保持一致

如果这个方向暂时不考虑支持,也完全理解。
若有更推荐的现有配置方式,也希望作者有空时指点一下。感谢。

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