aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Polden <mpolden@mpolden.no>2019-07-12 23:58:57 +0200
committerMartin Polden <mpolden@mpolden.no>2019-07-12 23:58:57 +0200
commit7b28436b186bb15107c3084d0ead3062fff8bc2c (patch)
treebd43716f59daedcac28807d2ab707837d91e8ccf
parentd93e21243d3805db56ec42004f12285125d28aef (diff)
Handle double episode tag
-rw-r--r--parser/parser.go8
-rw-r--r--parser/parser_test.go7
2 files changed, 11 insertions, 4 deletions
diff --git a/parser/parser.go b/parser/parser.go
index d621fac..e86f418 100644
--- a/parser/parser.go
+++ b/parser/parser.go
@@ -9,10 +9,10 @@ import (
var (
moviePattern = regexp.MustCompile(`(.*?)\.(\d{4})`)
episodePatterns = [4]*regexp.Regexp{
- regexp.MustCompile(`^(?P<name>.+)\.S(?P<season>\d{2})(?:E(?P<episode>\d{2}))?`), // S01, S01E04
- regexp.MustCompile(`^(?P<name>.+)\.E(?P<episode>\d{2})`), // E04
- regexp.MustCompile(`^(?P<name>.+)\.(?P<season>\d{1,2})x(?P<episode>\d{2})`), // 1x04, 01x04
- regexp.MustCompile(`^(?P<name>.+)\.Part\.?(?P<episode>\d{1,2})`), // Part4, Part11, Part.4, Part.11
+ regexp.MustCompile(`^(?P<name>.+?)\.S(?P<season>\d{2})(?:E(?P<episode>\d{2}))?`), // S01, S01E04
+ regexp.MustCompile(`^(?P<name>.+?)\.E(?P<episode>\d{2})`), // E04
+ regexp.MustCompile(`^(?P<name>.+?)\.(?P<season>\d{1,2})x(?P<episode>\d{2})`), // 1x04, 01x04
+ regexp.MustCompile(`^(?P<name>.+?)\.Part\.?(?P<episode>\d{1,2})`), // Part4, Part11, Part.4, Part.11
}
)
diff --git a/parser/parser_test.go b/parser/parser_test.go
index 33c9d2c..e1bdfae 100644
--- a/parser/parser_test.go
+++ b/parser/parser_test.go
@@ -146,6 +146,13 @@ func TestShow(t *testing.T) {
Season: 1,
Episode: 24,
}},
+ {"Friends.S01E16.S01E17.UNCUT.DVDrip.XviD-SAiNTS",
+ Media{
+ Release: "Friends.S01E16.S01E17.UNCUT.DVDrip.XviD-SAiNTS",
+ Name: "Friends",
+ Season: 1,
+ Episode: 16,
+ }},
}
for _, tt := range tests {
got, err := Show(tt.in)