From b4a4769dcf961aa674babfd0e62f7730695af275 Mon Sep 17 00:00:00 2001 From: ao gong <41768719+ageorge156@users.noreply.github.com> Date: Sat, 5 Sep 2026 13:32:48 +0800 Subject: [PATCH] fix(gen-script): strip inline '#' comment before classifying no-resolve suffix MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit to_rule() 在判断 entry.endswith(',no-resolve') 之前没有剥掉行尾 # 注释, 导致带 inline 注释的条目走 else 分支,把注释当成 entry 一部分拼进去, 最终生成出 mihomo 解析失败的规则: 'IP-CIDR,162.254.192.0/18,no-resolve # Akamai Steam CDN 主段,DIRECT' 修法: - to_rule() 先 split('#', 1)[0].rstrip() 剥注释再判断 - direct.yaml 第 91 行 inline 注释挪到独立行(避免再次踩坑) 验证:gen_clash_verge_script.py 重跑后 Script.js 第 49 行已变成 'IP-CIDR,162.254.192.0/18,DIRECT,no-resolve', Clash Verge 重启内核后订阅配置校验失败消失。 --- direct.yaml | 3 ++- scripts/gen_clash_verge_script.py | 7 ++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/direct.yaml b/direct.yaml index e485067..c6891b0 100644 --- a/direct.yaml +++ b/direct.yaml @@ -88,7 +88,8 @@ payload: - DOMAIN-KEYWORD,csgo. - PROCESS-NAME,steam - PROCESS-NAME,steamwebhelper - - IP-CIDR,162.254.192.0/18,no-resolve # Akamai Steam CDN 主段 + - IP-CIDR,162.254.192.0/18,no-resolve + # Akamai Steam CDN 主段 - IP-CIDR,103.10.124.0/23,no-resolve - IP-CIDR,103.28.54.0/23,no-resolve - IP-CIDR,146.66.152.0/21,no-resolve diff --git a/scripts/gen_clash_verge_script.py b/scripts/gen_clash_verge_script.py index dd1f4d4..d41239e 100644 --- a/scripts/gen_clash_verge_script.py +++ b/scripts/gen_clash_verge_script.py @@ -52,7 +52,12 @@ def load_payload(path: Path) -> list[str]: def to_rule(entry: str) -> str: - """rule-provider 条目(无策略)→ 完整规则(补 DIRECT)。""" + """rule-provider 条目(无策略)→ 完整规则(补 DIRECT)。 + + 处理:先剥掉行尾 `#` 注释,再补 DIRECT 策略,避免带注释的条目被错误拼接。 + """ + # 剥掉 `#` 之后的行尾注释 + entry = entry.split("#", 1)[0].rstrip() if entry.endswith(",no-resolve"): return f"{entry[:-len(',no-resolve')]},DIRECT,no-resolve" return f"{entry},DIRECT"