From 63fc4f277bb8d7d940cf147b1738f4d93a5e3999 Mon Sep 17 00:00:00 2001 From: Simon Ding Date: Wed, 24 Jul 2024 22:26:25 +0800 Subject: [PATCH] feat: better episode matching --- pkg/metadata/tv.go | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/pkg/metadata/tv.go b/pkg/metadata/tv.go index 2fcf3c6..3b1d496 100644 --- a/pkg/metadata/tv.go +++ b/pkg/metadata/tv.go @@ -109,6 +109,21 @@ func parseEnglishName(name string) *Metadata { } meta.Episode = n } + } else { //no episode, maybe like One Punch Man S2 - 08 [1080p].mkv + + numRe := regexp.MustCompile(`^\d{1,2}$`) + for _, p := range newSplits { + if numRe.MatchString(p) { + //episodeIndex = i + n, err := strconv.Atoi(p) + if err != nil { + panic(fmt.Sprintf("convert %s error: %v", p, err)) + } + meta.Episode = n + + } + } + } if resIndex != -1 { //resolution exists @@ -118,10 +133,10 @@ func parseEnglishName(name string) *Metadata { meta.IsSeasonPack = true } - if seasonIndex != 0 { + if seasonIndex > 0 { //name exists names := newSplits[0:seasonIndex] - meta.NameEn = strings.TrimSpace(strings.Join(names, " ")) + meta.NameEn = strings.TrimSpace(strings.Join(names, " ")) } else { meta.NameEn = name }