mirror of
https://github.com/Radarr/Radarr.git
synced 2024-10-02 06:07:19 +02:00
Added multiple new editions such as FanEdit, Anniversary and 2in1.
This commit is contained in:
parent
8ca66fb61a
commit
7c3d8c8ff9
44
create_test_cases.py
Normal file
44
create_test_cases.py
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
input1 = """Prometheus.Special.Edition.Fan Edit.2012..BRRip.x264.AAC-m2g
|
||||||
|
Star Wars Episode IV - A New Hope (Despecialized) 1999.mkv
|
||||||
|
Prometheus.(Special.Edition.Remastered).2012.[Bluray-1080p].mkv
|
||||||
|
Prometheus Extended 2012
|
||||||
|
Prometheus Extended Directors Cut Fan Edit 2012
|
||||||
|
Prometheus Director's Cut 2012
|
||||||
|
Prometheus Directors Cut 2012
|
||||||
|
Prometheus.(Extended.Theatrical.Version.IMAX).BluRay.1080p.2012.asdf
|
||||||
|
2001 A Space Odyssey Director's Cut (1968).mkv
|
||||||
|
2001: A Space Odyssey (Extended Directors Cut FanEdit) Bluray 1080p 1968
|
||||||
|
A Fake Movie 2035 Directors 2012.mkv
|
||||||
|
Blade Runner Director's Cut 2049.mkv
|
||||||
|
Prometheus 50th Anniversary Edition 2012.mkv
|
||||||
|
Movie 2in1 2012.mkv
|
||||||
|
Movie IMAX 2012.mkv"""
|
||||||
|
|
||||||
|
output1 = """Special.Edition.Fan Edit BRRip.x264.AAC-m2g
|
||||||
|
Despecialized mkv
|
||||||
|
Special.Edition.Remastered Bluray-1080p].mkv
|
||||||
|
Extended mkv
|
||||||
|
Extended Directors Cut Fan Edit mkv
|
||||||
|
Director's Cut mkv
|
||||||
|
Directors Cut mkv
|
||||||
|
Extended.Theatrical.Version.IMAX asdf
|
||||||
|
Director's Cut mkv
|
||||||
|
Extended Directors Cut FanEdit mkv
|
||||||
|
Directors mkv
|
||||||
|
Director's Cut mkv
|
||||||
|
50th Anniversary Edition mkv
|
||||||
|
2in1 mkv
|
||||||
|
IMAX mkv"""
|
||||||
|
|
||||||
|
inputs = input1.split("\n")
|
||||||
|
outputs = output1.split("\n")
|
||||||
|
real_o = []
|
||||||
|
for output in outputs:
|
||||||
|
real_o.append(output.split(" ")[0].replace(".", " ").strip())
|
||||||
|
|
||||||
|
count = 0
|
||||||
|
|
||||||
|
for inp in inputs:
|
||||||
|
o = real_o[count]
|
||||||
|
print "[TestCase(\"{0}\", \"{1}\")]".format(inp, o)
|
||||||
|
count += 1
|
@ -91,5 +91,41 @@ public void should_not_parse_language_in_movie_title(string postTitle)
|
|||||||
{
|
{
|
||||||
Parser.Parser.ParseMovieTitle(postTitle).Language.Should().Be(Language.English);
|
Parser.Parser.ParseMovieTitle(postTitle).Language.Should().Be(Language.English);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[TestCase("Prometheus 2012 Directors Cut", "Directors Cut")]
|
||||||
|
[TestCase("Star Wars Episode IV - A New Hope 1999 (Despecialized).mkv", "Despecialized")]
|
||||||
|
[TestCase("Prometheus.2012.(Special.Edition.Remastered).[Bluray-1080p].mkv", "Special Edition Remastered")]
|
||||||
|
[TestCase("Prometheus 2012 Extended", "Extended")]
|
||||||
|
[TestCase("Prometheus 2012 Extended Directors Cut Fan Edit", "Extended Directors Cut Fan Edit")]
|
||||||
|
[TestCase("Prometheus 2012 Director's Cut", "Director's Cut")]
|
||||||
|
[TestCase("Prometheus 2012 Directors Cut", "Directors Cut")]
|
||||||
|
[TestCase("Prometheus.2012.(Extended.Theatrical.Version.IMAX).BluRay.1080p.2012.asdf", "Extended Theatrical Version IMAX")]
|
||||||
|
[TestCase("2001 A Space Odyssey (1968) Director's Cut .mkv", "Director's Cut")]
|
||||||
|
[TestCase("2001: A Space Odyssey 1968 (Extended Directors Cut FanEdit)", "Extended Directors Cut FanEdit")]
|
||||||
|
[TestCase("A Fake Movie 2035 2012 Directors.mkv", "Directors")]
|
||||||
|
[TestCase("Blade Runner 2049 Director's Cut.mkv", "Director's Cut")]
|
||||||
|
[TestCase("Prometheus 2012 50th Anniversary Edition.mkv", "50th Anniversary Edition")]
|
||||||
|
[TestCase("Movie 2012 2in1.mkv", "2in1")]
|
||||||
|
[TestCase("Movie 2012 IMAX.mkv", "IMAX")]
|
||||||
|
[TestCase("Movie 2012 Restored.mkv", "Restored")]
|
||||||
|
[TestCase("Prometheus.Special.Edition.Fan Edit.2012..BRRip.x264.AAC-m2g", "Special Edition Fan Edit")]
|
||||||
|
[TestCase("Star Wars Episode IV - A New Hope (Despecialized) 1999.mkv", "Despecialized")]
|
||||||
|
[TestCase("Prometheus.(Special.Edition.Remastered).2012.[Bluray-1080p].mkv", "Special Edition Remastered")]
|
||||||
|
[TestCase("Prometheus Extended 2012", "Extended")]
|
||||||
|
[TestCase("Prometheus Extended Directors Cut Fan Edit 2012", "Extended Directors Cut Fan Edit")]
|
||||||
|
[TestCase("Prometheus Director's Cut 2012", "Director's Cut")]
|
||||||
|
[TestCase("Prometheus Directors Cut 2012", "Directors Cut")]
|
||||||
|
[TestCase("Prometheus.(Extended.Theatrical.Version.IMAX).BluRay.1080p.2012.asdf", "Extended Theatrical Version IMAX")]
|
||||||
|
[TestCase("2001 A Space Odyssey Director's Cut (1968).mkv", "Director's Cut")]
|
||||||
|
[TestCase("2001: A Space Odyssey (Extended Directors Cut FanEdit) Bluray 1080p 1968", "Extended Directors Cut FanEdit")]
|
||||||
|
[TestCase("A Fake Movie 2035 Directors 2012.mkv", "Directors")]
|
||||||
|
[TestCase("Blade Runner Director's Cut 2049.mkv", "Director's Cut")]
|
||||||
|
[TestCase("Prometheus 50th Anniversary Edition 2012.mkv", "50th Anniversary Edition")]
|
||||||
|
[TestCase("Movie 2in1 2012.mkv", "2in1")]
|
||||||
|
[TestCase("Movie IMAX 2012.mkv", "IMAX")]
|
||||||
|
public void should_parse_edition(string postTitle, string edition)
|
||||||
|
{
|
||||||
|
Parser.Parser.ParseMovieTitle(postTitle).Edition.Should().Be(edition);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -19,11 +19,11 @@ public static class Parser
|
|||||||
private static readonly Regex[] ReportMovieTitleRegex = new[]
|
private static readonly Regex[] ReportMovieTitleRegex = new[]
|
||||||
{
|
{
|
||||||
//Special, Despecialized, etc. Edition Movies, e.g: Mission.Impossible.3.Special.Edition.2011
|
//Special, Despecialized, etc. Edition Movies, e.g: Mission.Impossible.3.Special.Edition.2011
|
||||||
new Regex(@"^(?<title>(?![(\[]).+?)?(?:(?:[-_\W](?<![)\[!]))*(?<edition>(\.?((Extended.|Ultimate.)?(Director.?s|Collector.?s|Theatrical|Ultimate|Final|Extended|Rogue|Special|Despecialized).(Cut|Edition|Version)|Extended|Uncensored|Remastered|Unrated|Uncut|IMAX)))\.(?<year>(19|20)\d{2}(?!p|i|\d+|\]|\W\d+)))+(\W+|_|$)(?!\\)",
|
new Regex(@"^(?<title>(?![(\[]).+?)?(?:(?:[-_\W](?<![)\[!]))*\(?(?<edition>(((Extended.|Ultimate.)?(Director.?s|Collector.?s|Theatrical|Ultimate|Final|Extended|Rogue|Special|Despecialized|\d{2,3}(th)?.Anniversary)(.(Cut|Edition|Version))?(.(Extended|Uncensored|Remastered|Unrated|Uncut|IMAX|Fan.?Edit))?|((Uncensored|Remastered|Unrated|Uncut|IMAX|Fan.?Edit|Edition|Restored|((2|3|4)in1))))))\)?.+(?<year>(19|20)\d{2}(?!p|i|\d+|\]|\W\d+)))+(\W+|_|$)(?!\\)",
|
||||||
RegexOptions.IgnoreCase | RegexOptions.Compiled),
|
RegexOptions.IgnoreCase | RegexOptions.Compiled),
|
||||||
|
|
||||||
//Special, Despecialized, etc. Edition Movies, e.g: Mission.Impossible.3.2011.Special.Edition //TODO: Seems to slow down parsing heavily!
|
//Special, Despecialized, etc. Edition Movies, e.g: Mission.Impossible.3.2011.Special.Edition //TODO: Seems to slow down parsing heavily!
|
||||||
new Regex(@"^(?<title>(?![(\[]).+?)?(?:(?:[-_\W](?<![)\[!]))*(?<year>(19|20)\d{2}(?!p|i|\d+|\]|\W\d+)))+(\W+|_|$)(?!\\)(?<edition>((Extended.|Ultimate.)?(Director.?s|Collector.?s|Theatrical|Ultimate|Final|Extended|Rogue|Special|Despecialized).(Cut|Edition|Version)|Extended|Uncensored|Remastered|Unrated|Uncut|IMAX))",
|
new Regex(@"^(?<title>(?![(\[]).+?)?(?:(?:[-_\W](?<![)\[!]))*(?<year>(19|20)\d{2}(?!p|i|(19|20)\d{2}|\]|\W(19|20)\d{2})))+(\W+|_|$)(?!\\)\(?(?<edition>(((Extended.|Ultimate.)?(Director.?s|Collector.?s|Theatrical|Ultimate|Final|Extended|Rogue|Special|Despecialized|\d{2,3}(th)?.Anniversary)(.(Cut|Edition|Version))?(.(Extended|Uncensored|Remastered|Unrated|Uncut|IMAX|Fan.?Edit))?|((Uncensored|Remastered|Unrated|Uncut|IMAX|Fan.?Edit|Edition|Restored|((2|3|4)in1))))))\)?",
|
||||||
RegexOptions.IgnoreCase | RegexOptions.Compiled),
|
RegexOptions.IgnoreCase | RegexOptions.Compiled),
|
||||||
|
|
||||||
//Normal movie format, e.g: Mission.Impossible.3.2011
|
//Normal movie format, e.g: Mission.Impossible.3.2011
|
||||||
|
Loading…
Reference in New Issue
Block a user