FirstCommit

This commit is contained in:
yangfan
2025-07-23 19:31:36 +08:00
commit 9838382619
16 changed files with 6836 additions and 0 deletions

20
requirements.md Normal file
View File

@@ -0,0 +1,20 @@
## 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. 代码规范,结构清晰