refactor: name testing

This commit is contained in:
Simon Ding
2024-09-29 18:43:29 +08:00
parent f9556ec2d2
commit 84a0197776
4 changed files with 48 additions and 44 deletions

View File

@@ -14,13 +14,18 @@ type MovieMetadata struct {
IsQingban bool
}
func (m *MovieMetadata) IsAcceptable(name string) bool {
re := regexp.MustCompile(`[^\p{L}\w\s]`)
name = re.ReplaceAllString(strings.ToLower(name), " ")
name2 := re.ReplaceAllString(strings.ToLower(m.Name), " ")
name = strings.Join(strings.Fields(name), " ")
name2 = strings.Join(strings.Fields(name2), " ")
return strings.Contains(name2, name)
func (m *MovieMetadata) IsAcceptable(names... string) bool {
for _, name := range names {
re := regexp.MustCompile(`[^\p{L}\w\s]`)
name = re.ReplaceAllString(strings.ToLower(name), " ")
name2 := re.ReplaceAllString(strings.ToLower(m.Name), " ")
name = strings.Join(strings.Fields(name), " ")
name2 = strings.Join(strings.Fields(name2), " ")
if strings.Contains(name2, name) {
return true
}
}
return false
}

View File

@@ -18,15 +18,21 @@ type Metadata struct {
IsSeasonPack bool
}
func (m *Metadata) IsAcceptable(name string) bool {
re := regexp.MustCompile(`[^\p{L}\w\s]`)
name = re.ReplaceAllString(strings.ToLower(name), " ")
nameCN := re.ReplaceAllString(strings.ToLower(m.NameCn), " ")
nameEN := re.ReplaceAllString(strings.ToLower(m.NameEn), " ")
name = strings.Join(strings.Fields(name), " ")
nameCN = strings.Join(strings.Fields(nameCN), " ")
nameEN = strings.Join(strings.Fields(nameEN), " ")
return strings.Contains(nameCN, name) || strings.Contains(nameEN, name)
func (m *Metadata) IsAcceptable(names... string) bool {
for _, name := range names {
re := regexp.MustCompile(`[^\p{L}\w\s]`)
name = re.ReplaceAllString(strings.ToLower(name), " ")
nameCN := re.ReplaceAllString(strings.ToLower(m.NameCn), " ")
nameEN := re.ReplaceAllString(strings.ToLower(m.NameEn), " ")
name = strings.Join(strings.Fields(name), " ")
nameCN = strings.Join(strings.Fields(nameCN), " ")
nameEN = strings.Join(strings.Fields(nameEN), " ")
if strings.Contains(nameCN, name) || strings.Contains(nameEN, name) {
return true
}
}
return false
}

View File

@@ -56,17 +56,17 @@ func RandString(n int) string {
return string(b)
}
func IsNameAcceptable(name1, name2 string) bool {
re := regexp.MustCompile(`[^\p{L}\w\s]`)
name1 = re.ReplaceAllString(strings.ToLower(name1), " ")
name2 = re.ReplaceAllString(strings.ToLower(name2), " ")
name1 = strings.Join(strings.Fields(name1), " ")
name2 = strings.Join(strings.Fields(name2), " ")
if strings.Contains(name1, name2) || strings.Contains(name2, name1) {
return true
}
return false
}
// func IsNameAcceptable(name1, name2 string) bool {
// re := regexp.MustCompile(`[^\p{L}\w\s]`)
// name1 = re.ReplaceAllString(strings.ToLower(name1), " ")
// name2 = re.ReplaceAllString(strings.ToLower(name2), " ")
// name1 = strings.Join(strings.Fields(name1), " ")
// name2 = strings.Join(strings.Fields(name2), " ")
// if strings.Contains(name1, name2) || strings.Contains(name2, name1) {
// return true
// }
// return false
// }
func FindSeasonEpisodeNum(name string) (se int, ep int, err error) {
seRe := regexp.MustCompile(`S\d+`)