This commit was merged in pull request #1.
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
#!/usr/bin/env python3
|
||||
"""从 direct.yaml(真源)生成路由器「手动粘贴版」规则文件 router/direct-rules.yaml。
|
||||
|
||||
适用于 Magic Catling2 等无法联网拉取 rule-provider 的场景:
|
||||
把生成的规则行粘贴进现有 rules 列表最前面即可,无需 URL 拉取。
|
||||
"""
|
||||
from pathlib import Path
|
||||
|
||||
from gen_clash_verge_script import load_payload, to_rule
|
||||
|
||||
REPO_ROOT = Path(__file__).resolve().parent.parent
|
||||
OUT = REPO_ROOT / "router" / "direct-rules.yaml"
|
||||
|
||||
TEMPLATE = """# vpn-rules 手动粘贴版(无需联网拉取)— 由 direct.yaml 生成,勿手改。
|
||||
#
|
||||
# 用法(Magic Catling2 等拉不到 rule-provider 时):
|
||||
# 1. 打开路由器的规则设置;
|
||||
# 2. 把下面 `rules:` 里的每一行 `- 规则` 粘贴到【现有规则列表的最前面】;
|
||||
# 3. 只粘贴规则行,不要用整个文件替换你原来的 rules(否则订阅自带规则会丢)。
|
||||
#
|
||||
# 重新生成:python3 scripts/gen_router_paste.py(改真源 direct.yaml 后重跑)。
|
||||
# 规则与 direct.yaml 逐条对应;对应拉取版 URL:
|
||||
# https://gitea.puyuanfh.cn/ageorge156/vpn-rules/raw/branch/main/direct.yaml
|
||||
# 内网源:http://192.168.50.2:3000/ageorge156/vpn-rules/raw/branch/main/direct.yaml
|
||||
|
||||
rules:
|
||||
{rules}
|
||||
"""
|
||||
|
||||
|
||||
def main() -> None:
|
||||
payload = load_payload(REPO_ROOT / "direct.yaml")
|
||||
lines = "\n".join(f" - {to_rule(e)}" for e in payload)
|
||||
OUT.parent.mkdir(parents=True, exist_ok=True)
|
||||
OUT.write_text(TEMPLATE.format(rules=lines), encoding="utf-8")
|
||||
print(f"✅ 已生成 {OUT}({len(payload)} 条规则,可直接粘贴)")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user