Skip to content

OoadaioO/clash_rules

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Clash 规则管理工具

一个用于管理 Clash 配置文件规则的 Python 工具,支持动态添加自定义规则到 Clash 配置文件中。

功能特性

  • 🔧 自动规则插入: 在指定位置自动插入规则,无需手动编辑配置文件
  • 🔄 规则替换: 支持使用替换标签进行规则更新,避免重复添加
  • 📝 灵活配置: 支持自定义缩进、匹配模式和规则分组
  • 🎯 精准匹配: 使用正则表达式精确定位插入位置

安装要求

  • Python 3.6+
  • 无需额外依赖,使用 Python 标准库

使用方法

基本用法

python3 clash_rules.py -f target_config.yaml -af rules_file -re 'rules:' -c '🔰国外流量' -s 4

参数说明

参数 长参数 默认值 说明
-f --target_file custom.yaml 目标 Clash 配置文件路径
-af --append_file rules 包含待添加规则的文件路径
-re --regex_str rules: 用于定位插入位置的正则表达式
-c --choice 🔰国外流量 规则分组标识
-s --space 2 缩进空格数

使用示例

示例 1:添加国外流量规则

python3 clash_rules.py -f my_clash_config.yaml -af foreign_rules.txt -re 'rules:' -c '🔰国外流量' -s 4

示例 2:添加广告拦截规则

python3 clash_rules.py -f clash_config.yaml -af ad_block_rules.txt -re 'rules:' -c '🚫广告拦截' -s 2

示例 3:使用模块方式运行

python3 -m clash_rules -f config.yaml -af custom_rules -re 'rules:' -c '🎯自定义规则' -s 6

文件格式

规则文件格式

规则文件中每行包含一条规则,格式如下:

DOMAIN-SUFFIX,google.com
DOMAIN-SUFFIX,youtube.com
DOMAIN-KEYWORD,github
IP-CIDR,192.168.1.0/24

输出格式

工具会将规则文件中的每条规则转换为以下格式:

    - DOMAIN-SUFFIX,google.com,🔰国外流量
    - DOMAIN-SUFFIX,youtube.com,🔰国外流量
    - DOMAIN-KEYWORD,github,🔰国外流量
    - IP-CIDR,192.168.1.0/24,🔰国外流量

替换标签机制

工具使用特殊标签来标记可替换的规则块:

  • #REPLACE>>>: 替换块开始标签
  • #REPLACE<<<: 替换块结束标签

当再次运行工具时,会自动移除旧的替换块并插入新的规则。

工作原理

  1. 读取配置文件: 加载目标 Clash 配置文件
  2. 移除旧规则: 清除之前添加的替换标签块
  3. 定位插入点: 使用正则表达式找到插入位置
  4. 插入新规则: 在指定位置插入格式化的规则
  5. 保存文件: 将更新后的配置写回文件

注意事项

⚠️ 使用前请备份配置文件

  • 工具会直接修改目标文件,建议先备份原始配置
  • 确保规则文件编码为 UTF-8
  • 正则表达式需要准确匹配配置文件中的内容
  • 缩进空格数应与原配置文件保持一致

常见问题

Q: 如何处理不同的 Clash 配置格式?

A: 通过调整 -re 参数来匹配不同的配置文件结构,例如:

  • 标准格式:-re 'rules:'
  • 带注释格式:-re '# Rules'

Q: 如何设置正确的缩进?

A: 检查原配置文件中规则的缩进,通常:

  • 一级缩进:-s 2
  • 二级缩进:-s 4
  • 三级缩进:-s 6

Q: 支持哪些规则类型?

A: 支持所有 Clash 规则类型,包括:

  • DOMAIN-SUFFIX
  • DOMAIN-KEYWORD
  • DOMAIN
  • IP-CIDR
  • GEOIP
  • MATCH

贡献

欢迎提交 Issue 和 Pull Request 来改进此工具。

许可证

本项目采用 MIT 许可证。

About

自动添加clash规则

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages