Match anime correctly

This commit is contained in:
Dan Jones 2024-10-23 22:10:31 -05:00
commit ec3db89d1a
2 changed files with 19 additions and 6 deletions

View file

@ -28,10 +28,9 @@ func main() {
data, err := convids.NewData(dataPath)
cli.HandleErr(err)
fmt.Printf("Data: %+v\n", data)
for s := range data.AllShows(false) {
fmt.Printf("Show: %+v\n", s)
}
convids.WalkFiles(data, false, false, func(s *convids.Show, path string) error {
fmt.Printf("%s for %+v\n", path, s)
return nil
})
fmt.Println("\nDone!")
}

View file

@ -11,6 +11,9 @@ import (
var ErrNoName = errors.New("missing name")
var animePattern = `^\[.+\] `
var animeRegexp = regexp.MustCompile(animePattern)
func (s *Show) Match(path string) (bool, error) {
if s.Pattern != "" {
return s.matchRegexp(path)
@ -18,13 +21,24 @@ func (s *Show) Match(path string) (bool, error) {
if s.Name == "" {
return false, ErrNoName
}
if s.Anime {
if !animeRegexp.MatchString(path) {
return false, nil
}
path = animeRegexp.ReplaceAllString(path, "")
}
return strings.HasPrefix(path, s.Name), nil
}
func (s *Show) matchRegexp(path string) (f bool, err error) {
if s.re == nil {
p := s.Pattern
if !strings.HasPrefix(p, "^") {
if s.Anime {
if strings.HasPrefix(p, "^") {
p = strings.TrimPrefix(p, "^")
}
p = animePattern + p
} else if !strings.HasPrefix(p, "^") {
p = "^" + p
}
s.re, err = regexp.Compile(p)