feat: ascii name should match words

This commit is contained in:
Simon Ding
2024-10-10 13:16:44 +08:00
parent a22100b2fc
commit 485a580661
3 changed files with 24 additions and 0 deletions

View File

@@ -2,6 +2,7 @@ package metadata
import (
"fmt"
"polaris/pkg/utils"
"regexp"
"strconv"
"strings"
@@ -21,6 +22,11 @@ func (m *MovieMetadata) IsAcceptable(names... string) bool {
name2 := re.ReplaceAllString(strings.ToLower(m.Name), " ")
name = strings.Join(strings.Fields(name), " ")
name2 = strings.Join(strings.Fields(name2), " ")
if utils.IsASCII(name) { //ascii name should match words
re := regexp.MustCompile(`\b` + name + `\b`)
return re.MatchString(name2)
}
if strings.Contains(name2, name) {
return true
}

View File

@@ -27,6 +27,11 @@ func (m *Metadata) IsAcceptable(names... string) bool {
name = strings.Join(strings.Fields(name), " ")
nameCN = strings.Join(strings.Fields(nameCN), " ")
nameEN = strings.Join(strings.Fields(nameEN), " ")
if utils.IsASCII(name) { //ascii name should match words
re := regexp.MustCompile(`\b` + name + `\b`)
return re.MatchString(nameCN) || re.MatchString(nameEN)
}
if strings.Contains(nameCN, name) || strings.Contains(nameEN, name) {
return true
}

View File

@@ -145,3 +145,16 @@ func Test_ParseTV14(t *testing.T) {
assert.Equal(t, false, m.IsSeasonPack)
//assert.Equal(t, "720p", m.Resolution)
}
//
func Test_ParseTV15(t *testing.T) {
s1 := "[7³ACG] 剧场版 回转企鹅罐 [前篇] 你的列车是生存战略/RE:cycle of the PENGUINDRUM Zenpen [简繁字幕] BDrip 1080p x265 FLAC"
m := ParseTv(s1)
log.Infof("results: %+v", m)
b := m.IsAcceptable("The Penguin")
assert.False(t, b)
//assert.Equal(t, 1, m.Season)
//assert.Equal(t, 113, m.Episode)
//assert.Equal(t, false, m.IsSeasonPack)
//assert.Equal(t, "720p", m.Resolution)
}