Skip to content

[Feature Request] 建议在订阅解析/配置生成中增加“清除订阅转换后的 rules 规则”的选项 #1299

Description

@norko66

功能请求与什么问题有关?

目前许多机场提供的原生订阅,其自带的 rules 规则非常臃肿、过时,甚至存在格式不规范(如缩进混乱、包含非法字符)的问题。
当用户希望在 ShellCrash 中通过“配置模板”或“自定义规则/Rule-set”来实现精细化分流时,原订阅自带的 rules 往往会与用户的自定义规则产生冲突。

此外,由于部分机场原生 YAML 格式不标准(例如混合了 2 空格和 4 空格缩进),直接套用在线订阅转换(如 Subconverter)经常会触发 yaml-cpp: error 等解析崩溃,导致无法通过云端彻底洗干净订阅。

希望的解决方案

希望在 ShellCrash 的面板菜单中(例如在【订阅功能】或【导入选项】内),增加一个开关选项:
“是否清空/忽略订阅转换后的 rules 规则”

具体逻辑:

  1. **当该选项开启(Yes)时:ShellCrash 在本地下载并解析配置源文件时,直接通过脚本(如通过 sedawk 或内置的 yaml 工具)将原转换订阅后的 rules: 节点及其下方所有内容完全剔除或清空。
  2. **随后,仅保留原订阅的 proxies(节点信息),并完全依赖用户在 ShellCrash 中配置的“自定义规则”、“Rule-set(规则集)”以及自定义的分流模板来重新生成最终的 rules 配置。

考虑过的替代方案

  1. 使用在线订阅转换: 极易因为多个机场源 YAML 缩进不统一、或WORKER-VLESS订阅缩进不统一而导致转换服务器直接报 500 错误(end of map not found 等),且存在一定的隐私泄露风险。
  2. 下载到本地手动修改: 每次机场更新节点或优选 IP 变动时,都需要重新手动复制、对齐缩进、删除规则,无法做到全自动自动化刷新。

附加信息

这个功能对于喜欢折腾高性能“纯 Rule-set 分流”以及自建混合节点(机场+自建 Worker 优选)的用户非常实用。
通过在 ShellCrash 本地预处理时直接“剥离”原生 rules,可以极大地提高配置生成的容错率,彻底避免因为机场底层规则写错而导致路由器 Clash/Mihomo 内核无法启动的问题。

感谢作者的维护!

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