✨ 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)
|
data, err := convids.NewData(dataPath)
|
||||||
cli.HandleErr(err)
|
cli.HandleErr(err)
|
||||||
|
|
||||||
fmt.Printf("Data: %+v\n", data)
|
convids.WalkFiles(data, false, false, func(s *convids.Show, path string) error {
|
||||||
|
fmt.Printf("%s for %+v\n", path, s)
|
||||||
for s := range data.AllShows(false) {
|
return nil
|
||||||
fmt.Printf("Show: %+v\n", s)
|
})
|
||||||
}
|
|
||||||
fmt.Println("\nDone!")
|
fmt.Println("\nDone!")
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,9 @@ import (
|
||||||
|
|
||||||
var ErrNoName = errors.New("missing name")
|
var ErrNoName = errors.New("missing name")
|
||||||
|
|
||||||
|
var animePattern = `^\[.+\] `
|
||||||
|
var animeRegexp = regexp.MustCompile(animePattern)
|
||||||
|
|
||||||
func (s *Show) Match(path string) (bool, error) {
|
func (s *Show) Match(path string) (bool, error) {
|
||||||
if s.Pattern != "" {
|
if s.Pattern != "" {
|
||||||
return s.matchRegexp(path)
|
return s.matchRegexp(path)
|
||||||
|
|
@ -18,13 +21,24 @@ func (s *Show) Match(path string) (bool, error) {
|
||||||
if s.Name == "" {
|
if s.Name == "" {
|
||||||
return false, ErrNoName
|
return false, ErrNoName
|
||||||
}
|
}
|
||||||
|
if s.Anime {
|
||||||
|
if !animeRegexp.MatchString(path) {
|
||||||
|
return false, nil
|
||||||
|
}
|
||||||
|
path = animeRegexp.ReplaceAllString(path, "")
|
||||||
|
}
|
||||||
return strings.HasPrefix(path, s.Name), nil
|
return strings.HasPrefix(path, s.Name), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *Show) matchRegexp(path string) (f bool, err error) {
|
func (s *Show) matchRegexp(path string) (f bool, err error) {
|
||||||
if s.re == nil {
|
if s.re == nil {
|
||||||
p := s.Pattern
|
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
|
p = "^" + p
|
||||||
}
|
}
|
||||||
s.re, err = regexp.Compile(p)
|
s.re, err = regexp.Compile(p)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue