diff --git a/sub/subClashService.go b/sub/subClashService.go index c15639bf..23518fa3 100644 --- a/sub/subClashService.go +++ b/sub/subClashService.go @@ -573,10 +573,14 @@ func mergeClashRulesYAML(base map[string]any, raw string) error { case []any: mergeClashRules(base, typed) case map[string]any: - if rules, ok := typed["rules"]; ok { - if ruleList, ok := asAnySlice(rules); ok { - mergeClashRules(base, ruleList) + for key, value := range typed { + if key == "rules" { + if ruleList, ok := asAnySlice(value); ok { + mergeClashRules(base, ruleList) + } + continue } + base[key] = value } default: mergeClashRules(base, linesToClashRules(raw))