Files
ClashSubscribeMerge/requirements.md
2025-07-23 19:31:36 +08:00

20 lines
1.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## Clash 节点订阅合并处理脚本
### 1. 整体概述
使用python 实现一个处理Clash 订阅信息的脚本, 该脚本通过读取`subscribe.json` 文件来获取所有订阅组信息然后使用订阅组中的URL 来获取Clash 订阅获取到的是Base64编码之后的文本请解析出原始文本(标准的 Clash YAML 格式)并将其暂存在temp\\[group_name].yaml 文件中(注意:原始文本中包含中文和特殊字符,解析的时候充分考虑编码问题)然后将所有获取到的订阅信息整合并依据temp.yaml 为模板生成新的merge.yaml 文件。
### 2. 订阅信息整合逻辑
1. 将temp\\[group_name].yaml中 所有proxies 节点信息中 剔除name 包含 [剩余流量,距离下次重置剩余, 套餐到期 ] 的节点整合到merge.yaml 的proxies 中
2. 将temp\\[group_name].yaml 中的 proxy-groups 第一组通常包含该订阅站点的所有节点,去除掉该组中 头部包含 ['Auto', '剩余流量', '距离下次重置剩余, 套餐到期, ] 等节点后将该 proxy-groups 添加到 merge.yaml 文件的 proxy-groups 中
3. 梳理temp\\[group_name].yaml 文件 proxies 节点中的 香港、新加坡、USA 并添加在merge.yaml 文件Auto-香港、Auto-新加坡、Auto-USA 分组中。
4. 香港节点name 中可能包含 HKG、🇭🇰、HongKong 新加坡节点name中可能包含 Singapore 🇸🇬, SGP 美国节点name 中可能包含USA、🇺🇸
5. 不同temp\\[group_name].yaml 中 proxies 节点的name 可能存在冲突如果发现name 冲突则修改后添加的name修改规则为 oldName_Num
### 3. 代码规范
1. 使用uv 工具来管理python 第三方包
2. 代码规范,结构清晰