summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author世界 <[email protected]>2024-01-02 00:25:17 +0800
committer世界 <[email protected]>2024-01-03 12:10:32 +0800
commitfc71b5c331b4166c9f9169a3f85fdeb805d8b64b (patch)
tree871253607ce2947c3dd7d5d621289b3ab8468afe
parent563f703dde3f1d05f127709e9b5e09d810668fd1 (diff)
Merge category-*@cn to cn2024010503470820240104053246
-rw-r--r--main.go41
1 files changed, 40 insertions, 1 deletions
diff --git a/main.go b/main.go
index 8111365..f3e746b 100644
--- a/main.go
+++ b/main.go
@@ -239,6 +239,45 @@ func filterTags(data map[string][]geosite.Item) {
os.Stderr.WriteString("merged " + strings.Join(mergedCodeMap, ",") + "\n")
}
+func mergeTags(data map[string][]geosite.Item) {
+ var codeList []string
+ for code := range data {
+ codeList = append(codeList, code)
+ }
+ var cnCodeList []string
+ for _, code := range codeList {
+ codeParts := strings.Split(code, "@")
+ if len(codeParts) != 2 {
+ continue
+ }
+ if codeParts[1] != "cn" {
+ continue
+ }
+ if !strings.HasPrefix(codeParts[0], "category-") {
+ continue
+ }
+ if strings.HasSuffix(codeParts[0], "-cn") || strings.HasSuffix(codeParts[0], "-!cn") {
+ continue
+ }
+ cnCodeList = append(cnCodeList, code)
+ }
+ newMap := make(map[geosite.Item]bool)
+ for _, item := range data["cn"] {
+ newMap[item] = true
+ }
+ for _, code := range cnCodeList {
+ for _, item := range data[code] {
+ newMap[item] = true
+ }
+ }
+ newList := make([]geosite.Item, 0, len(newMap))
+ for item := range newMap {
+ newList = append(newList, item)
+ }
+ data["cn"] = newList
+ println("merged cn categories: " + strings.Join(cnCodeList, ","))
+}
+
func generate(release *github.RepositoryRelease, output string, cnOutput string, ruleSetOutput string) error {
vData, err := download(release)
if err != nil {
@@ -249,6 +288,7 @@ func generate(release *github.RepositoryRelease, output string, cnOutput string,
return err
}
filterTags(domainMap)
+ mergeTags(domainMap)
outputPath, _ := filepath.Abs(output)
os.Stderr.WriteString("write " + outputPath + "\n")
outputFile, err := os.Create(output)
@@ -263,7 +303,6 @@ func generate(release *github.RepositoryRelease, output string, cnOutput string,
cnCodes := []string{
"cn",
"geolocation-!cn",
- "category-companies@cn",
}
cnDomainMap := make(map[string][]geosite.Item)
for _, cnCode := range cnCodes {