mirror of
https://github.com/truewhile/MeBox.git
synced 2026-10-03 04:26:36 +08:00
68 lines
1.3 KiB
Go
68 lines
1.3 KiB
Go
package service
|
|
|
|
import (
|
|
"net/url"
|
|
"strings"
|
|
)
|
|
|
|
func adultConfiguredBases(value string) []string {
|
|
parts := strings.FieldsFunc(value, func(r rune) bool {
|
|
switch r {
|
|
case ',', ';', '\n', '\r', '\t', ' ':
|
|
return true
|
|
default:
|
|
return false
|
|
}
|
|
})
|
|
out := make([]string, 0, len(parts))
|
|
for _, part := range parts {
|
|
part = strings.TrimSpace(part)
|
|
if part == "" {
|
|
continue
|
|
}
|
|
if !strings.HasPrefix(part, "http://") && !strings.HasPrefix(part, "https://") {
|
|
part = "https://" + part
|
|
}
|
|
out = append(out, strings.TrimRight(part, "/"))
|
|
}
|
|
return out
|
|
}
|
|
|
|
func adultSourceKind(base string) string {
|
|
u, err := url.Parse(strings.TrimSpace(base))
|
|
host := ""
|
|
if err == nil {
|
|
host = strings.ToLower(u.Hostname())
|
|
}
|
|
if host == "" {
|
|
host = strings.ToLower(base)
|
|
}
|
|
if strings.Contains(host, "javdb") {
|
|
return "javdb"
|
|
}
|
|
for _, needle := range []string{"javbus", "cdnbus", "javsee", "busjav"} {
|
|
if strings.Contains(host, needle) {
|
|
return "javbus"
|
|
}
|
|
}
|
|
return "javdb"
|
|
}
|
|
|
|
func dedupeStrings(values []string) []string {
|
|
seen := map[string]struct{}{}
|
|
out := make([]string, 0, len(values))
|
|
for _, value := range values {
|
|
value = strings.TrimSpace(value)
|
|
if value == "" {
|
|
continue
|
|
}
|
|
key := strings.ToLower(value)
|
|
if _, ok := seen[key]; ok {
|
|
continue
|
|
}
|
|
seen[key] = struct{}{}
|
|
out = append(out, value)
|
|
}
|
|
return out
|
|
}
|