This commit is contained in:
xmdhs 2023-12-04 20:47:26 +08:00
parent 0b5a436c3f
commit d8d79fc56d
No known key found for this signature in database
GPG Key ID: E809D6D43DEFCC95
2 changed files with 6 additions and 13 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
output

View File

@ -23,7 +23,6 @@ func adguard(ctx context.Context, c *http.Client) (*Ruleset, error) {
domain := map[string]struct{}{} domain := map[string]struct{}{}
domainRegex := map[string]struct{}{} domainRegex := map[string]struct{}{}
domainSuffix := map[string]struct{}{} domainSuffix := map[string]struct{}{}
domainKeyword := map[string]struct{}{}
s := filterlist.NewRuleScanner(bytes.NewReader(b), 1, true) s := filterlist.NewRuleScanner(bytes.NewReader(b), 1, true)
@ -46,22 +45,16 @@ func adguard(ctx context.Context, c *http.Client) (*Ruleset, error) {
continue continue
} }
if strings.HasSuffix(rule, ".") { if strings.HasSuffix(rule, ".") {
domainKeyword[rule] = struct{}{} domainRegex[`^(.*\.)?`+rule] = struct{}{}
continue continue
} }
domain[rule] = struct{}{} domain[rule] = struct{}{}
continue continue
} }
if strings.HasPrefix(rule, "*") || strings.HasSuffix(rule, "*") {
domainKeyword[strings.ReplaceAll(rule, "*", "")] = struct{}{}
continue
}
ruleR := strings.TrimPrefix(rule, "://") ruleR := strings.TrimPrefix(rule, "://")
ruleR = strings.ReplaceAll(ruleR, ".", `\.`) ruleR = strings.ReplaceAll(ruleR, ".", `\.`)
reg := strings.ReplaceAll(ruleR, "*", ".*") reg := strings.ReplaceAll(ruleR, "*", ".*")
if !strings.HasPrefix(hr.RuleText, "|") { reg = `^(.*\.)?` + reg
reg = "^" + reg
}
if strings.HasSuffix(hr.RuleText, "^") { if strings.HasSuffix(hr.RuleText, "^") {
reg = reg + "$" reg = reg + "$"
} }
@ -78,7 +71,6 @@ func adguard(ctx context.Context, c *http.Client) (*Ruleset, error) {
"domain": lo.Map[string, any](lo.Keys(domain), func(item string, index int) any { return item }), "domain": lo.Map[string, any](lo.Keys(domain), func(item string, index int) any { return item }),
"domain_suffix": lo.Map[string, any](lo.Keys(domainSuffix), func(item string, index int) any { return item }), "domain_suffix": lo.Map[string, any](lo.Keys(domainSuffix), func(item string, index int) any { return item }),
"domain_regex": lo.Map[string, any](lo.Keys(domainRegex), func(item string, index int) any { return item }), "domain_regex": lo.Map[string, any](lo.Keys(domainRegex), func(item string, index int) any { return item }),
"domain_keyword": lo.Map[string, any](lo.Keys(domainKeyword), func(item string, index int) any { return item }),
}, },
} }
return &r, nil return &r, nil