You've already forked Sonarr
							
							
				mirror of
				https://github.com/Sonarr/Sonarr.git
				synced 2025-10-31 00:07:55 +02:00 
			
		
		
		
	ParseEpisodeInfo will now handle repeating Episode Naming Format (S01E01E02 or S01E01-02), It will not handle ranges (S01E01-06)
Changed port back to 8989.
This commit is contained in:
		| @@ -148,7 +148,7 @@ | ||||
|           <virtualDirectory path="/" physicalPath="%NZBDRONE_PATH%\NZBDrone.Web" /> | ||||
|         </application> | ||||
|         <bindings> | ||||
|           <binding protocol="http" bindingInformation="*:8111:" /> | ||||
|           <binding protocol="http" bindingInformation="*:8989:" /> | ||||
|         </bindings> | ||||
|       </site> | ||||
|       <siteDefaults> | ||||
|   | ||||
| @@ -13,7 +13,6 @@ namespace NzbDrone.Core.Test | ||||
|     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.113.720p.HDTV.X264-DIMENSION", 1, 13)] | ||||
|         [Row("Two.and.a.Half.Me.1013.720p.HDTV.X264-DIMENSION", 10, 13)] | ||||
| @@ -35,6 +34,18 @@ namespace NzbDrone.Core.Test | ||||
|             Assert.AreEqual(episode, result[0].EpisodeNumber); | ||||
|         } | ||||
|  | ||||
|         [Test] | ||||
|         [Row("The.Office.US.S03E01E02.DUAL.BDRip.XviD.AC3.-HELLYWOOD", 3, 1, 2)] | ||||
|         [Row("WEEDS.S03E01-06.DUAL.BDRip.XviD.AC3.-HELLYWOOD", 3, 1, 6)] | ||||
|         public void episode_parse_multi(string path, int season, int episodeOne, int episodeTwo) | ||||
|         { | ||||
|             var result = Parser.ParseEpisodeInfo(path); | ||||
|             Assert.Count(2, result); | ||||
|             Assert.AreEqual(season, result[0].SeasonNumber); | ||||
|             Assert.AreEqual(episodeOne, result[0].EpisodeNumber); | ||||
|             Assert.AreEqual(episodeTwo, result[1].EpisodeNumber); | ||||
|         } | ||||
|  | ||||
|         [Test] | ||||
|         [Row("WEEDS.S03E01-06.DUAL.BDRip.XviD.AC3.-HELLYWOOD", QualityTypes.BDRip)] | ||||
|         [Row("WEEDS.S03E01-06.DUAL.BDRip.AC3.-HELLYWOOD", QualityTypes.BDRip)] | ||||
|   | ||||
| @@ -18,7 +18,7 @@ namespace NzbDrone.Core | ||||
|  | ||||
|         private static readonly Regex[] ReportTitleRegex = new[] | ||||
|                                                        { | ||||
|                                                          new Regex(@"(?<title>.+?)?\W?(?<year>\d+?)?\WS?(?<season>\d+)(?:\-|\.|[a-z])(?<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), | ||||
|                                                          new Regex(@"(?<title>.+?)?\W?(?<year>\d+?)?\WS?(?<season>\d+)(?<episode>\d{2})\W(?!\\)", RegexOptions.IgnoreCase | RegexOptions.Compiled) //Supports 103/113 naming | ||||
|                                                        }; | ||||
|  | ||||
| @@ -58,18 +58,22 @@ namespace NzbDrone.Core | ||||
|                     foreach (Match matchGroup in match) | ||||
|                     { | ||||
|  | ||||
|                         var parsedEpisode = new EpisodeParseResult | ||||
|                                                 { | ||||
|                                                     SeriesTitle = seriesName, | ||||
|                                                     SeasonNumber = Convert.ToInt32(matchGroup.Groups["season"].Value), | ||||
|                                                     EpisodeNumber = Convert.ToInt32(matchGroup.Groups["episode"].Value), | ||||
|                                                     Year = year | ||||
|                                                 }; | ||||
|                         var seasonNumber = Convert.ToInt32(matchGroup.Groups["season"].Value); | ||||
|  | ||||
|                         foreach (Capture episode in matchGroup.Groups["episode"].Captures) | ||||
|                         { | ||||
|                             var parsedEpisode = new EpisodeParseResult | ||||
|                             { | ||||
|                                 SeriesTitle = seriesName, | ||||
|                                 SeasonNumber = seasonNumber, | ||||
|                                 EpisodeNumber = Convert.ToInt32(episode.Value), | ||||
|                                 Year = year | ||||
|                             }; | ||||
|  | ||||
|  | ||||
|                         result.Add(parsedEpisode); | ||||
|  | ||||
|                         Logger.Trace("Episode Parsed. {0}", parsedEpisode); | ||||
|                             result.Add(parsedEpisode); | ||||
|                             Logger.Trace("Episode Parsed. {0}", parsedEpisode); | ||||
|                         } | ||||
|                     } | ||||
|                     break; //Break out of the for loop, we don't want to process every REGEX for each item otherwise we'll get duplicates | ||||
|                 } | ||||
|   | ||||
| @@ -4,6 +4,6 @@ | ||||
|     <supportedRuntime version="v4.0" /> | ||||
|   </startup> | ||||
|   <appSettings> | ||||
|     <add key="port" value="8111" /> | ||||
|     <add key="port" value="8989" /> | ||||
|   </appSettings> | ||||
| </configuration> | ||||
		Reference in New Issue
	
	Block a user