Files
archived-MoviePilot-Plugins/plugins.v2/clashruleprovider/README.md
wumode e15733b7de refactor(ClashRuleProvider): 重构后端核心逻辑与数据模型
- 数据模型重构: 全面引入 Pydantic 模型(ClashConfig, Proxy, ProxyGroup 等)替代原有字典结构,提供更严格的数据验证与类型安全。
- 数据迁移机制: 新增 v2.1.0 数据升级脚本,支持将旧版代理、策略组及规则数据自动迁移至新架构。
- 配置补丁系统: 实现基于 JSON Patch 的细粒度配置修补机制,替代旧版覆盖逻辑,提升配置修改的灵活性。
- 服务层优化: 重写 ClashRuleProviderService 以适配新对象模型,增强代码可维护性与扩展性。
- API模型同步: 更新相关 API 数据模型以保持与内部数据结构的一致性。
- 用户界面: 批量规则管理和数据项隐藏支持
2026-01-10 19:23:32 +08:00

67 lines
2.5 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 Rule Provider
**Clash Rule Provider** 是一个[MoviePilot](https://github.com/jxxghp/MoviePilot)插件,用于生成适用于 [Meta Kernel](https://github.com/MetaCubeX/mihomo/tree/Meta) 定制配置,便于增加、修改和删除规则,基于 Meta 内核丰富的代理组配置,提供灵活的路由功能。
- 即时通知 Clash 刷新规则集合
- 支持按大洲和国家分组节点
- 支持覆写出站代理
- GEO 规则输入提示
- 支持 [ACL4SSR](https://github.com/ACL4SSR/ACL4SSR) 规则集合
## 配置说明
### 规则集规则
用于添加能够在 Clash 中即时生效的规则Clash Rule Provider 会根据每条规则的**出站**生成相应的**规则集合**。
### 置顶规则
这是Clash配置文件的`rules`字段中最顶部的规则相比于其它规则它们拥有更高的优先级。Clash Rule Provider 会自动在此处添加**规则集规则**内的**规则集合**。
### 代理组
代理组中配置项的说明请参考 [Mihomo docs](https://wiki.metacubex.one/config/proxy-groups/)
这里以两个例子说明如何定制代理组:
- 访问北邮人的代理组
北邮人拒绝国内以及所有IPv4连接可以添加一个 `type``url-test` 的代理组,在 `url` 中填写北邮人的地址,打开 `include-all-proxies`,其余配置项保持默认。
然后,在**置顶规则**中添加一条规则: `DOMAIN,xxx.pt,PtProxy`
![](https://images2.imgbox.com/c9/37/FhBGLNQw_o.jpg)
- 访问ChatGPT的代理组
在**高级选项**中启用按大洲分组节点。选择Asia以外的代理组设置`url`: `https://chatgpt.com/` , `expected-status`: `200`
![](https://images2.imgbox.com/e2/37/EoITSfRi_o.jpg)
### Hosts
如果需要自动更新此处使用的 Cloudflare IP, 可以通过其它[插件](https://github.com/wumode/MoviePilot-Addons)实现。
### 配置隐藏
如果希望某些代理组、规则或是代理节点仅在特定条件下可见,可以使用可见性限制功能。例如,可以设置某些规则集仅在特定网络环境下可见。
自定义表达式是个返回`bool`值的Python表达式可以使用以下变量:
```python
# 请求 URL
url: str
# 客户端的IP地址
client_host: str
# 请求的标识符
identifier: str | None = None
# User-Agent
user_agent : str | None = None
```
表达式示例:
- `client_host == '192.168.1.1'`
- `identifier == 'office-laptop' and 'Mobile' in user_agent`
## 远程组件
[ClashRuleProvider-Remote](https://github.com/wumode/ClashRuleProvider-Remote)