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]
|
||||
[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("The.Girls.Next.Door.S03E06.DVDRip.XviD-WiDE", 3, 6)]
|
||||
[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\robot chicken\Specials\S00E16 - Dear Consumer - SD TV.avi", 0, 16)]
|
||||
[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)
|
||||
{
|
||||
var result = Parser.ParseEpisodeInfo(path);
|
||||
|
@ -76,7 +76,7 @@ public static class SceneNameHelper
|
||||
|
||||
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)
|
||||
return 0;
|
||||
|
@ -18,7 +18,7 @@ internal static class Parser
|
||||
|
||||
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);
|
||||
|
@ -116,7 +116,11 @@ private void ProcessStandardItem(NzbInfoModel nzb, Indexer indexer, List<Episode
|
||||
if (series == null)
|
||||
{
|
||||
//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)
|
||||
{
|
||||
@ -127,13 +131,9 @@ private void ProcessStandardItem(NzbInfoModel nzb, Indexer indexer, List<Episode
|
||||
|
||||
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.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
|
||||
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?
|
||||
|
||||
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)))
|
||||
{
|
||||
var path = _configProvider.GetValue("BlackholeDirectory", String.Empty, true);
|
||||
|
Loading…
Reference in New Issue
Block a user