✨ Match anime correctly
This commit is contained in:
parent
19206a9bf5
commit
ec3db89d1a
2 changed files with 19 additions and 6 deletions
|
|
@ -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!")
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue