switch to advanced domain.json

This commit is contained in:
Seraphim Strub 2024-07-15 19:37:06 +00:00
parent 1c848e6007
commit a76b11b2b2
6 changed files with 280 additions and 161 deletions

View file

@ -4,13 +4,13 @@ import (
_ "embed"
"encoding/json"
"log"
"sort"
"slices"
)
//go:embed domain.json
var domainsFiles []byte
var Domains []string
var Domains map[string][]string
func init() {
err := json.Unmarshal(domainsFiles, &Domains)
@ -19,22 +19,12 @@ func init() {
}
}
func AddDomain(domain string) {
domains := append(Domains, domain)
sort.SliceStable(domains, func(i, j int) bool {
return domains[i] < domains[j]
})
Domains = removeDuplicate(domains)
}
func removeDuplicate[T string](sliceList []T) []T {
allKeys := make(map[T]bool)
var list []T
for _, item := range sliceList {
if _, value := allKeys[item]; !value {
allKeys[item] = true
list = append(list, item)
func AddDomain(domain, tld string) {
if _, ok := Domains[domain]; ok {
if !slices.Contains(Domains[domain], tld) {
Domains[domain] = append(Domains[domain], tld)
}
} else {
Domains[domain] = []string{tld}
}
return list
}