Compare commits
2
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7cfdc0fbcc | ||
|
|
f05bffd587 |
-18
@@ -76,21 +76,3 @@ payload:
|
||||
- IP-CIDR,110.42.0.0/16,no-resolve
|
||||
- IP-CIDR,43.248.128.0/17,no-resolve
|
||||
- IP-CIDR,111.170.0.0/16,no-resolve
|
||||
|
||||
# Steam 全局直连(社区/商店/CDN/Valve 官方网段;避免下载/联机绕美节点)
|
||||
- DOMAIN-SUFFIX,steampowered.com
|
||||
- DOMAIN-SUFFIX,steamcommunity.com
|
||||
- DOMAIN-SUFFIX,steamgames.com
|
||||
- DOMAIN-SUFFIX,steamusercontent.com
|
||||
- DOMAIN-SUFFIX,steam-chat.com
|
||||
- DOMAIN-SUFFIX,steamstatic.com
|
||||
- DOMAIN-SUFFIX,steamcontent.com
|
||||
- DOMAIN-KEYWORD,csgo.
|
||||
- PROCESS-NAME,steam
|
||||
- PROCESS-NAME,steamwebhelper
|
||||
- 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
|
||||
- IP-CIDR,155.133.224.0/19,no-resolve
|
||||
|
||||
@@ -33,18 +33,3 @@ DOMAIN-SUFFIX,syncthing.net
|
||||
IP-CIDR,110.42.0.0/16,no-resolve
|
||||
IP-CIDR,43.248.128.0/17,no-resolve
|
||||
IP-CIDR,111.170.0.0/16,no-resolve
|
||||
DOMAIN-SUFFIX,steampowered.com
|
||||
DOMAIN-SUFFIX,steamcommunity.com
|
||||
DOMAIN-SUFFIX,steamgames.com
|
||||
DOMAIN-SUFFIX,steamusercontent.com
|
||||
DOMAIN-SUFFIX,steam-chat.com
|
||||
DOMAIN-SUFFIX,steamstatic.com
|
||||
DOMAIN-SUFFIX,steamcontent.com
|
||||
DOMAIN-KEYWORD,csgo.
|
||||
PROCESS-NAME,steam
|
||||
PROCESS-NAME,steamwebhelper
|
||||
IP-CIDR,162.254.192.0/18,no-resolve
|
||||
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
|
||||
IP-CIDR,155.133.224.0/19,no-resolve
|
||||
|
||||
@@ -46,18 +46,3 @@ rules:
|
||||
- IP-CIDR,110.42.0.0/16,DIRECT,no-resolve
|
||||
- IP-CIDR,43.248.128.0/17,DIRECT,no-resolve
|
||||
- IP-CIDR,111.170.0.0/16,DIRECT,no-resolve
|
||||
- DOMAIN-SUFFIX,steampowered.com,DIRECT
|
||||
- DOMAIN-SUFFIX,steamcommunity.com,DIRECT
|
||||
- DOMAIN-SUFFIX,steamgames.com,DIRECT
|
||||
- DOMAIN-SUFFIX,steamusercontent.com,DIRECT
|
||||
- DOMAIN-SUFFIX,steam-chat.com,DIRECT
|
||||
- DOMAIN-SUFFIX,steamstatic.com,DIRECT
|
||||
- DOMAIN-SUFFIX,steamcontent.com,DIRECT
|
||||
- DOMAIN-KEYWORD,csgo.,DIRECT
|
||||
- PROCESS-NAME,steam,DIRECT
|
||||
- PROCESS-NAME,steamwebhelper,DIRECT
|
||||
- IP-CIDR,162.254.192.0/18,DIRECT,no-resolve
|
||||
- IP-CIDR,103.10.124.0/23,DIRECT,no-resolve
|
||||
- IP-CIDR,103.28.54.0/23,DIRECT,no-resolve
|
||||
- IP-CIDR,146.66.152.0/21,DIRECT,no-resolve
|
||||
- IP-CIDR,155.133.224.0/19,DIRECT,no-resolve
|
||||
|
||||
@@ -52,12 +52,7 @@ def load_payload(path: Path) -> list[str]:
|
||||
|
||||
|
||||
def to_rule(entry: str) -> str:
|
||||
"""rule-provider 条目(无策略)→ 完整规则(补 DIRECT)。
|
||||
|
||||
处理:先剥掉行尾 `#` 注释,再补 DIRECT 策略,避免带注释的条目被错误拼接。
|
||||
"""
|
||||
# 剥掉 `#` 之后的行尾注释
|
||||
entry = entry.split("#", 1)[0].rstrip()
|
||||
"""rule-provider 条目(无策略)→ 完整规则(补 DIRECT)。"""
|
||||
if entry.endswith(",no-resolve"):
|
||||
return f"{entry[:-len(',no-resolve')]},DIRECT,no-resolve"
|
||||
return f"{entry},DIRECT"
|
||||
|
||||
@@ -203,42 +203,6 @@ class ModuleSpecTests(unittest.TestCase):
|
||||
"PROCESS-NAME,OneDrive.exe,DIRECT",
|
||||
)
|
||||
|
||||
def test_to_rule_strips_inline_hash_comment_before_classifying_no_resolve(self) -> None:
|
||||
# 回归测试 (b4a4769):to_rule() 在判断 entry.endswith(',no-resolve') 之前
|
||||
# 没有剥掉行尾 # 注释,导致带 inline 注释的 Akamai Steam CDN 规则
|
||||
# 走错分支,把注释当成 entry 的一部分拼进去,生成 mihomo 解析失败的规则。
|
||||
self.assertEqual(
|
||||
to_rule("IP-CIDR,162.254.192.0/18,no-resolve # Akamai Steam CDN 主段"),
|
||||
"IP-CIDR,162.254.192.0/18,DIRECT,no-resolve",
|
||||
)
|
||||
# 注释里出现 "no-resolve" 不能误判为 suffix
|
||||
self.assertEqual(
|
||||
to_rule("DOMAIN-SUFFIX,example.com # 走 no-resolve 路径"),
|
||||
"DOMAIN-SUFFIX,example.com,DIRECT",
|
||||
)
|
||||
# 注释里出现 ",DIRECT" 不能误拼到 proxy 字段
|
||||
self.assertEqual(
|
||||
to_rule("IP-CIDR,10.0.0.0/8 # 不是 DIRECT, 是 REJECT"),
|
||||
"IP-CIDR,10.0.0.0/8,DIRECT",
|
||||
)
|
||||
|
||||
def test_to_rule_preserves_canonical_forms(self) -> None:
|
||||
# 不带注释、不带 no-resolve
|
||||
self.assertEqual(
|
||||
to_rule("DOMAIN-SUFFIX,bilibili.com"),
|
||||
"DOMAIN-SUFFIX,bilibili.com,DIRECT",
|
||||
)
|
||||
# 带 no-resolve、无注释
|
||||
self.assertEqual(
|
||||
to_rule("IP-CIDR,127.0.0.0/8,no-resolve"),
|
||||
"IP-CIDR,127.0.0.0/8,DIRECT,no-resolve",
|
||||
)
|
||||
# 带 no-resolve + 行尾空白
|
||||
self.assertEqual(
|
||||
to_rule("IP-CIDR,127.0.0.0/8,no-resolve "),
|
||||
"IP-CIDR,127.0.0.0/8,DIRECT,no-resolve",
|
||||
)
|
||||
|
||||
def test_clash_verge_script_adds_reachable_direct_dns_fallbacks(self) -> None:
|
||||
script = render_script(["PROCESS-NAME,OneDrive.exe"])
|
||||
|
||||
|
||||
Reference in New Issue
Block a user