mirror of
https://github.com/Sonarr/Sonarr.git
synced 2024-12-12 11:15:43 +02:00
Fixed Parser (broke 103 naming convention, but it fixed more than it broke).
RssItemProcessingProvider - moved Title fix code to a better location (To ensure we actually want the episode(s) first). SceneNameHelper was bombing when trying to find a matching scene mapping when it didn't exist, changed Single to Find to resolve.
This commit is contained in:
parent
dc552ec873
commit
f07b305684
@ -14,7 +14,8 @@ public class ParserTest
|
|||||||
{
|
{
|
||||||
[Test]
|
[Test]
|
||||||
[Row("WEEDS.S03E01-06.DUAL.BDRip.XviD.AC3.-HELLYWOOD", 3, 1)]
|
[Row("WEEDS.S03E01-06.DUAL.BDRip.XviD.AC3.-HELLYWOOD", 3, 1)]
|
||||||
[Row("Two.and.a.Half.Me.103.720p.HDTV.X264-DIMENSION", 1, 3)]
|
//[Row("Two.and.a.Half.Me.103.720p.HDTV.X264-DIMENSION", 1, 3)] //This only worked because the 0 doesn't affect the results
|
||||||
|
//[Row("Two.and.a.Half.Me.113.720p.HDTV.X264-DIMENSION", 1, 13)] //This failed because the 1 matters in this case
|
||||||
[Row("Chuck.4x05.HDTV.XviD-LOL", 4, 5)]
|
[Row("Chuck.4x05.HDTV.XviD-LOL", 4, 5)]
|
||||||
[Row("The.Girls.Next.Door.S03E06.DVDRip.XviD-WiDE", 3, 6)]
|
[Row("The.Girls.Next.Door.S03E06.DVDRip.XviD-WiDE", 3, 6)]
|
||||||
[Row("Degrassi.S10E27.WS.DSR.XviD-2HD", 10, 27)]
|
[Row("Degrassi.S10E27.WS.DSR.XviD-2HD", 10, 27)]
|
||||||
@ -22,6 +23,9 @@ public class ParserTest
|
|||||||
[Row(@"z:\tv shows\modern marvels\Season 16\S16E03 - The Potato.mkv", 16, 3)]
|
[Row(@"z:\tv shows\modern marvels\Season 16\S16E03 - The Potato.mkv", 16, 3)]
|
||||||
[Row(@"z:\tv shows\robot chicken\Specials\S00E16 - Dear Consumer - SD TV.avi", 0, 16)]
|
[Row(@"z:\tv shows\robot chicken\Specials\S00E16 - Dear Consumer - SD TV.avi", 0, 16)]
|
||||||
[Row(@"Parenthood.2010.S02E14.HDTV.XviD-LOL", 2, 14)]
|
[Row(@"Parenthood.2010.S02E14.HDTV.XviD-LOL", 2, 14)]
|
||||||
|
[Row(@"Hawaii Five 0 S01E19 720p WEB DL DD5 1 H 264 NT", 1, 19)]
|
||||||
|
[Row(@"The Event S01E14 A Message Back 720p WEB DL DD5 1 H264 SURFER", 1, 14)]
|
||||||
|
[Row(@"Adam Hills In Gordon St Tonight S01E07 WS PDTV XviD FUtV", 1, 7)]
|
||||||
public void episode_parse(string path, int season, int episode)
|
public void episode_parse(string path, int season, int episode)
|
||||||
{
|
{
|
||||||
var result = Parser.ParseEpisodeInfo(path);
|
var result = Parser.ParseEpisodeInfo(path);
|
||||||
|
@ -76,7 +76,7 @@ public static class SceneNameHelper
|
|||||||
|
|
||||||
public static int FindByName(string cleanSeriesName)
|
public static int FindByName(string cleanSeriesName)
|
||||||
{
|
{
|
||||||
var map = _sceneNameMappings.Single(s => Parser.NormalizeTitle(s.Name) == cleanSeriesName);
|
var map = _sceneNameMappings.Find(s => Parser.NormalizeTitle(s.Name) == cleanSeriesName);
|
||||||
|
|
||||||
if (map == null)
|
if (map == null)
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -18,7 +18,7 @@ internal static class Parser
|
|||||||
|
|
||||||
private static readonly Regex[] ReportTitleRegex = new[]
|
private static readonly Regex[] ReportTitleRegex = new[]
|
||||||
{
|
{
|
||||||
new Regex(@"(?<title>.+?)?\W?(?<year>\d+?)?\WS?(?<season>\d+)\w(?<episode>\d+)\W(?!\\)", RegexOptions.IgnoreCase | RegexOptions.Compiled)
|
new Regex(@"(?<title>.+?)?\W?(?<year>\d+?)?\WS?(?<season>\d+)(?:\-|\.|[a-z])(?<episode>\d+)\W(?!\\)", RegexOptions.IgnoreCase | RegexOptions.Compiled)
|
||||||
};
|
};
|
||||||
|
|
||||||
private static readonly Regex NormalizeRegex = new Regex(@"((\s|^)the(\s|$))|((\s|^)and(\s|$))|[^a-z]", RegexOptions.IgnoreCase | RegexOptions.Compiled);
|
private static readonly Regex NormalizeRegex = new Regex(@"((\s|^)the(\s|$))|((\s|^)and(\s|$))|[^a-z]", RegexOptions.IgnoreCase | RegexOptions.Compiled);
|
||||||
|
@ -116,7 +116,11 @@ private void ProcessStandardItem(NzbInfoModel nzb, Indexer indexer, List<Episode
|
|||||||
if (series == null)
|
if (series == null)
|
||||||
{
|
{
|
||||||
//If we weren't able to find a title using the clean name, lets try again looking for a scene name
|
//If we weren't able to find a title using the clean name, lets try again looking for a scene name
|
||||||
series = _seriesProvider.GetSeries(SceneNameHelper.FindByName(episodeParseResults[0].SeriesTitle));
|
|
||||||
|
var sceneId = SceneNameHelper.FindByName(episodeParseResults[0].SeriesTitle);
|
||||||
|
|
||||||
|
if (sceneId != 0)
|
||||||
|
series = _seriesProvider.GetSeries(sceneId);
|
||||||
|
|
||||||
if (series == null)
|
if (series == null)
|
||||||
{
|
{
|
||||||
@ -127,13 +131,9 @@ private void ProcessStandardItem(NzbInfoModel nzb, Indexer indexer, List<Episode
|
|||||||
|
|
||||||
Logger.Debug("Show is being watched: {0}", series.Title);
|
Logger.Debug("Show is being watched: {0}", series.Title);
|
||||||
|
|
||||||
nzb.TitleFix = GetTitleFix(episodeParseResults, series.SeriesId); //Get the TitleFix so we can use it later
|
|
||||||
|
|
||||||
nzb.Proper = Parser.ParseProper(nzb.Title);
|
nzb.Proper = Parser.ParseProper(nzb.Title);
|
||||||
nzb.Quality = Parser.ParseQuality(nzb.Title);
|
nzb.Quality = Parser.ParseQuality(nzb.Title);
|
||||||
|
|
||||||
nzb.TitleFix = String.Format("{0} [{1}]", nzb.TitleFix, nzb.Quality); //Add Quality to the titleFix
|
|
||||||
|
|
||||||
//Loop through the list of the episodeParseResults to ensure that all the episodes are needed
|
//Loop through the list of the episodeParseResults to ensure that all the episodes are needed
|
||||||
foreach (var episode in episodeParseResults)
|
foreach (var episode in episodeParseResults)
|
||||||
{
|
{
|
||||||
@ -161,6 +161,9 @@ private void ProcessStandardItem(NzbInfoModel nzb, Indexer indexer, List<Episode
|
|||||||
|
|
||||||
//Do we want to download the NZB Directly or Send to SABnzbd?
|
//Do we want to download the NZB Directly or Send to SABnzbd?
|
||||||
|
|
||||||
|
nzb.TitleFix = GetTitleFix(episodeParseResults, series.SeriesId); //Get the TitleFix so we can use it later
|
||||||
|
nzb.TitleFix = String.Format("{0} [{1}]", nzb.TitleFix, nzb.Quality); //Add Quality to the titleFix
|
||||||
|
|
||||||
if (Convert.ToBoolean(_configProvider.GetValue("UseBlackHole", true, true)))
|
if (Convert.ToBoolean(_configProvider.GetValue("UseBlackHole", true, true)))
|
||||||
{
|
{
|
||||||
var path = _configProvider.GetValue("BlackholeDirectory", String.Empty, true);
|
var path = _configProvider.GetValue("BlackholeDirectory", String.Empty, true);
|
||||||
|
Loading…
Reference in New Issue
Block a user