diff --git a/pkg/metadata/doc.go b/pkg/metadata/doc.go index 9c16125..b41c40c 100644 --- a/pkg/metadata/doc.go +++ b/pkg/metadata/doc.go @@ -7,11 +7,17 @@ Cowboy Cartel S01E02 XviD-AFG [eztv] The.Bold.and.the.Beautiful.S37E219.XviD-AFG As Husband As Wife 2024 S01E05-E06 1080p WEB-DL HEVC DDP 2Audios-QHstudIo Twinkle Love 2024 S04 Complete 2160p WEB-DL HEVC AAC-QHstudIo -One Punch Man S2 - 08 [1080p].mkv +[HorribleSubs] One Punch Man S2 - 08 [720p].mkv +[Breeze] One Punch Man S​01 S​02 [1080​p BD AV​1][dual audio] +[HYSUB]ONE PUNCH MAN[S​1+S​2][BDrip][GB_MP​4][1920​X​1080] +Cowboy Cartel S01E04 Photo Finish 1080p ATVP WEB-DL DDP5 1 Atmos H 264-FLUX [eztv] +Limitless Wrestling 2021 01 06 The Road Season 2 Episode 12 XviD-AFG [eztv] [千夏字幕组][小市民系列_Shoushimin Series][第03话][1080p_HEVC][简繁内封][招募新人] [OPFans楓雪動漫][ONE PIECE 海賊王][第1113話][周日版][1080p][MP4][簡體] [桜都字幕组] 亦叶亦花 / Nanare Hananare [04][1080p][简体内嵌] [ANi] 戰國妖狐 千魔混沌篇 - 16 [1080P][Baha][WEB-DL][AAC AVC][CHT][MP4] [ANi] 這是妳與我的最後戰場,或是開創世界的聖戰 第二季 - 04 [1080P][Baha][WEB-DL][AAC AVC][CHT][MP4] + [桜都字幕组][一拳超人 第2季/One Punch Man 2nd Season][01-12 END][BIG5][720P] + 一拳超人第二季One.Punch.Man.Season2.2160p.10Bit.HEVC.AAC.CHS&JPN */ \ No newline at end of file diff --git a/pkg/metadata/tv.go b/pkg/metadata/tv.go index d8dbe52..5fe62c4 100644 --- a/pkg/metadata/tv.go +++ b/pkg/metadata/tv.go @@ -154,9 +154,11 @@ func parseEnglishName(name string) *Metadata { } func parseChineseName(name string) *Metadata { - var meta = &Metadata{ - Season: 1, + var meta = parseEnglishName(name) + if meta.Season != -1 && (meta.Episode != -1 || meta.IsSeasonPack) { + return meta } + meta = &Metadata{Season: 1} //season pack packRe := regexp.MustCompile(`(\d{1,2}-\d{1,2})|(全集)`) if packRe.MatchString(name) { diff --git a/pkg/metadata/tv_test.go b/pkg/metadata/tv_test.go index e3d9d7f..3b6b385 100644 --- a/pkg/metadata/tv_test.go +++ b/pkg/metadata/tv_test.go @@ -1,10 +1,147 @@ package metadata -var tvEnNames = []string{ - "As Husband As Wife 2024 S01E05-E06 1080p WEB-DL HEVC DDP 2Audios-QHstudIo", - "Twinkle Love 2024 S04 Complete 2160p WEB-DL HEVC AAC-QHstudIo", +import ( + "polaris/log" + "testing" + + "github.com/stretchr/testify/assert" +) + +func Test_ParseTV1(t *testing.T) { + s1 := "Twinkle Love 2024 S04 Complete 2160p WEB-DL HEVC AAC-QHstudIo" + m := ParseTv(s1) + log.Infof("results: %+v", m) + assert.Equal(t, m.Season, 4) + assert.Equal(t, m.IsSeasonPack, true) + assert.Equal(t, m.Resolution, "2160p") } -var tvCnNames = []string{ +func Test_ParseTV2(t *testing.T) { + s1 := "Cowboy Cartel S01E04 Photo Finish 1080p ATVP WEB-DL DDP5 1 Atmos H 264-FLUX [eztv] " + m := ParseTv(s1) + log.Infof("results: %+v", m) + assert.Equal(t, m.Season, 1) + assert.Equal(t, m.Episode, 4) + assert.Equal(t, m.IsSeasonPack, false) + assert.Equal(t, m.Resolution, "1080p") +} +func Test_ParseTV3(t *testing.T) { + s1 := "The.Bold.and.the.Beautiful.S37E219.XviD-AFG " + m := ParseTv(s1) + log.Infof("results: %+v", m) + assert.Equal(t, m.Season, 37) + assert.Equal(t, m.Episode, 219) + assert.Equal(t, m.IsSeasonPack, false) + //assert.Equal(t, m.Resolution, "1080p") +} + +func Test_ParseTV4(t *testing.T) { + s1 := "Limitless Wrestling 2021 01 06 The Road Season 2 Episode 12 XviD-AFG [eztv] " + m := ParseTv(s1) + log.Infof("results: %+v", m) + assert.Equal(t, m.Season, 2) + //assert.Equal(t, m.Episode, 219) + assert.Equal(t, m.IsSeasonPack, true) + //assert.Equal(t, m.Resolution, "1080p") +} + +func Test_ParseTV5(t *testing.T) { + s1 := "[Breeze] One Punch Man S​01 S​02 [1080​p BD AV​1][dual audio]" + m := ParseTv(s1) + log.Infof("results: %+v", m) + assert.Equal(t, m.Season, 1) + //assert.Equal(t, m.Episode, 219) + assert.Equal(t, m.IsSeasonPack, true) + //assert.Equal(t, m.Resolution, "1080p") +} + +func Test_ParseTV6(t *testing.T) { + s1 := "[千夏字幕组][小市民系列_Shoushimin Series][第03话][1080p_HEVC][简繁内封][招募新人]" + m := ParseTv(s1) + log.Infof("results: %+v", m) + assert.Equal(t, m.Season, 1) + assert.Equal(t, m.Episode, 3) + assert.Equal(t, m.IsSeasonPack, false) + assert.Equal(t, m.Resolution, "1080p") +} + +func Test_ParseTV7(t *testing.T) { + s1 := " [OPFans楓雪動漫][ONE PIECE 海賊王][第1113話][周日版][1080p][MP4][簡體]" + m := ParseTv(s1) + log.Infof("results: %+v", m) + assert.Equal(t, m.Season, 1) + assert.Equal(t, m.Episode, 1113) + assert.Equal(t, m.IsSeasonPack, false) + assert.Equal(t, m.Resolution, "1080p") +} + +func Test_ParseTV8(t *testing.T) { + s1 := "[桜都字幕组] 亦叶亦花 / Nanare Hananare [04][1080p][简体内嵌] " + m := ParseTv(s1) + log.Infof("results: %+v", m) + assert.Equal(t, m.Season, 1) + assert.Equal(t, m.Episode, 4) + assert.Equal(t, m.IsSeasonPack, false) + assert.Equal(t, m.Resolution, "1080p") +} + +func Test_ParseTV9(t *testing.T) { + s1 := "[ANi] 戰國妖狐 千魔混沌篇 - 16 [1080P][Baha][WEB-DL][AAC AVC][CHT][MP4]" + m := ParseTv(s1) + log.Infof("results: %+v", m) + assert.Equal(t, m.Season, 1) + assert.Equal(t, m.Episode, 16) + assert.Equal(t, m.IsSeasonPack, false) + assert.Equal(t, m.Resolution, "1080p") +} + +func Test_ParseTV10(t *testing.T) { + s1 := " [桜都字幕组][一拳超人 第2季/One Punch Man 2nd Season][01-12 END][BIG5][720P]" + m := ParseTv(s1) + log.Infof("results: %+v", m) + assert.Equal(t, 2, m.Season) + assert.Equal(t, 01, m.Episode) + assert.Equal(t, false, m.IsSeasonPack) + assert.Equal(t, "720p", m.Resolution) +} + +func Test_ParseTV11(t *testing.T) { + s1 := " [ANi] 這是妳與我的最後戰場,或是開創世界的聖戰 第二季 - 04 [1080P][Baha][WEB-DL][AAC AVC][CHT][MP4] " + m := ParseTv(s1) + log.Infof("results: %+v", m) + assert.Equal(t, 2, m.Season) + assert.Equal(t, 4, m.Episode) + assert.Equal(t, false, m.IsSeasonPack) + assert.Equal(t, "1080p", m.Resolution) +} + +func Test_ParseTV12(t *testing.T) { + s1 := " 牛仔Cowboy Cartel S02E04 Photo Finish 1080p ATVP WEB-DL DDP5 1 Atmos H 264-FLUX [eztv] " + m := ParseTv(s1) + log.Infof("results: %+v", m) + assert.Equal(t, 2, m.Season) + assert.Equal(t, 4, m.Episode) + assert.Equal(t, false, m.IsSeasonPack) + assert.Equal(t, "1080p", m.Resolution) +} + +func Test_ParseTV13(t *testing.T) { + s1 := "" + m := ParseTv(s1) + log.Infof("results: %+v", m) + assert.Equal(t, 2, m.Season) + assert.Equal(t, 01, m.Episode) + assert.Equal(t, false, m.IsSeasonPack) + assert.Equal(t, "720p", m.Resolution) +} + +func Test_ParseTV14(t *testing.T) { + s1 := "" + m := ParseTv(s1) + log.Infof("results: %+v", m) + assert.Equal(t, 2, m.Season) + assert.Equal(t, 01, m.Episode) + assert.Equal(t, false, m.IsSeasonPack) + assert.Equal(t, "720p", m.Resolution) } \ No newline at end of file