diff --git a/cmd/convids/main.go b/cmd/convids/main.go index bbe462b..f07e8db 100644 --- a/cmd/convids/main.go +++ b/cmd/convids/main.go @@ -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!") } diff --git a/convids/methods.go b/convids/methods.go index 2fe95b2..71689a9 100644 --- a/convids/methods.go +++ b/convids/methods.go @@ -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)