diff options
author | Martin Polden <mpolden@mpolden.no> | 2019-07-12 23:58:57 +0200 |
---|---|---|
committer | Martin Polden <mpolden@mpolden.no> | 2019-07-12 23:58:57 +0200 |
commit | 7b28436b186bb15107c3084d0ead3062fff8bc2c (patch) | |
tree | bd43716f59daedcac28807d2ab707837d91e8ccf | |
parent | d93e21243d3805db56ec42004f12285125d28aef (diff) |
Handle double episode tag
-rw-r--r-- | parser/parser.go | 8 | ||||
-rw-r--r-- | parser/parser_test.go | 7 |
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) |