【教程】使用覆写模块订阅自己的规则集 #5049
Replies: 10 comments 22 replies
|
按照指引在覆写模块新建文件写入内容,规则集并没有生成,自定义规则失败 |
|
补充一个较为完整的openclash_custom_overwrite.sh: #!/bin/sh
. /usr/share/openclash/ruby.sh
. /usr/share/openclash/log.sh
. /lib/functions.sh
LOG_OUT "Tip: Start Running Custom Overwrite Scripts..."
LOGTIME=$(date "+%Y-%m-%d %H:%M:%S")
LOG_FILE="/tmp/openclash.log"
CONFIG_FILE="$1"
# =========================
# Rule Providers
# =========================
ruby_merge_hash "$CONFIG_FILE" "['rule-providers']" "'direct_misc'=>{'type'=>'http', 'behavior'=>'classical', 'url'=>'http://10.147.17.75:18079/direct_misc.yaml', 'path'=>'./rule_provider/direct_misc.yaml', 'interval'=>86400, 'format'=>'yaml'}"
ruby_merge_hash "$CONFIG_FILE" "['rule-providers']" "'hk_nodes'=>{'type'=>'http', 'behavior'=>'classical', 'url'=>'http://10.147.17.75:18079/hk_nodes.yaml', 'path'=>'./rule_provider/hk_nodes.yaml', 'interval'=>86400, 'format'=>'yaml'}"
ruby_merge_hash "$CONFIG_FILE" "['rule-providers']" "'GameDownload'=>{'type'=>'http', 'behavior'=>'classical', 'url'=>'https://cdn.jsdelivr.net/gh/blackmatrix7/ios_rule_script@master/rule/Clash/Game/GameDownload/GameDownload.yaml', 'path'=>'./rule_provider/GameDownload.yaml', 'interval'=>86400, 'format'=>'yaml'}"
ruby_merge_hash "$CONFIG_FILE" "['rule-providers']" "'Steam'=>{'type'=>'http', 'behavior'=>'classical', 'url'=>'https://raw.githubusercontent.com/dler-io/Rules/main/Clash/Provider/Steam.yaml', 'path'=>'./rule_provider/Steam.yaml', 'interval'=>86400, 'format'=>'yaml'}"
exit 0
|
|
proxy-providers和proxy-groups自己写了一直报错,搞不懂哪里出错了。 |
|
要不更新个skills吧,能让ai直接写 |
|
#!/bin/sh CONFIG_FILE="$1" =========================1. 创建“其他美客多”专用策略组(类似油管视频)=========================ruby_merge_hash "$CONFIG_FILE" "['proxy-groups']" "{'🛒 美客多'=>{'type'=>'select', 'proxies'=>['🚀 节点选择', '♻️ 自动选择', '🇭🇰 香港节点', '🇹🇼 台湾节点', '🇸🇬 狮城节点', '🇯🇵 日本节点', '🇺🇸 美国节点', '🇰🇷 韩国节点', '🚀 手动切换', 'DIRECT']}}" =========================2. 创建“阿根廷美客多”专用策略组=========================ruby_merge_hash "$CONFIG_FILE" "['proxy-groups']" "{'🛒 美客多-阿根廷'=>{'type'=>'select', 'proxies'=>['DIRECT', '🇦🇷 Base 阿根廷家宽', '🚀 手动切换']}}" =========================3. 添加规则=========================阿根廷美客多(优先匹配)ruby_merge_hash "$CONFIG_FILE" "['rules']" "{'- DOMAIN-SUFFIX,mercadolibre.com.ar,🛒 美客多-阿根廷'}" 其他美客多站点(走新创建的“🛒 美客多”策略组)ruby_merge_hash "$CONFIG_FILE" "['rules']" "{'- DOMAIN-SUFFIX,mercadolibre.com,🛒 美客多'}" exit 0 自己新增了策略组,但是并没有出现啊,是哪里除了问题 |
[YAML]
+rule-providers:
Steam:
type: http
behavior: domain
format: mrs
url: "https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/steam.mrs"
interval: 86400
+rules:
- RULE-SET,Steam,Proxy |
|
学习,mark |
|
真的很希望改回原来的一键订阅,对于一般人非常好用,还可以自己添加不同的机场进去不同的代理集挂进去不同策略,现在新版本真是无从下手呢,请创作者考虑。 |
|
希望能把游戏规则的功能加回来,会方便不少 |
|
https://github.com/zhiruizz/openclash-overwrite 已在自己的仓库上传了新的skill,写不明白的兄弟可以把仓库链接贴给agent/chat来替你写 |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
〖26-07-30修订〗使用覆写模块订阅自定义规则集:适用范围与兼容性说明
1. YAML 覆写模块的正确位置
+rule-providers和+rules是 覆写模块的[YAML]段内容,不能直接粘贴到:因为该文件会被 OpenClash 当作 shell 脚本执行,而不是 YAML 解析。
标准模块结构:
其中:
+rule-providers:向现有配置合并 rule-provider;+rules:将规则前置加入现有 rules,优先于原订阅规则;RULE-SET第二个参数必须等于 provider 名称;2. 必须先确认实际策略组名称
策略组名称需要逐字符一致,包括 Emoji、空格和国旗代码。
例如,下面两个名称不同:
如果订阅实际使用的是:
则规则也必须写成:
- RULE-SET,us_nodes,🇺🇲 美国节点不能写成
🇺🇸 美国节点。可在 OpenClash 运行后的配置文件中确认最终名称:
grep -n "美国节点" /etc/openclash/当前配置名.yaml3. 部分 iStoreOS/OpenClash 环境的编码兼容性问题
部分环境会在处理覆写模块
[YAML]段时经过 shell 解析,导致中文、Emoji 或 YAML 的\u/\U转义丢失。典型现象:
RULE-SET中的策略组名变为????,或变成字面量U0001F...;这种情况不是 provider URL 或规则集格式问题,而是策略组名称在覆写模块处理过程中损坏。
4. 兼容性建议
4.1 策略组名为 ASCII 时
可直接使用覆写模块:
4.2 策略组名包含中文或 Emoji 时
若启动日志出现
proxy not found、????或 Unicode 转义被破坏,请改用:中的 Ruby 覆写脚本,不要再使用
[YAML]模块写入这类规则。脚本应完成两件事:
rule-providers;RULE-SET插入rules开头,并使用与订阅完全一致的策略组名。5. 排查顺序
[YAML]段,而不是.sh文件;RULE-SET引用一致;behavior、format一致;/tmp/openclash.log;openclash_custom_overwrite.sh的 Ruby 方案。6. 结论
+rule-providers/+rules仍适合简单、ASCII 策略组名的覆写场景;但不能把 YAML 直接粘贴到自定义 shell 覆写脚本中。对于带中文或 Emoji 策略组名的 iStoreOS/OpenClash 环境,应先测试最终生成的配置;若存在编码损坏,使用 Ruby 自定义覆写脚本是更可靠的方案。
All reactions