Selaa lähdekoodia

support linux share paths in episode tv utils

Luke Pulverenti 11 vuotta sitten
vanhempi
sitoutus
2864e4a339

+ 18 - 18
MediaBrowser.Controller/Library/TVUtils.cs

@@ -45,49 +45,49 @@ namespace MediaBrowser.Controller.Library
         private static readonly Regex[] EpisodeExpressions = new[]
                                                                  {
                                                                      new Regex(
-                                                                         @".*\\[sS]?(?<seasonnumber>\d{1,4})[xX](?<epnumber>\d{1,3})[^\\]*$",
+                                                                         @".*(\\|\/)[sS]?(?<seasonnumber>\d{1,4})[xX](?<epnumber>\d{1,3})[^\\\/]*$",
                                                                          RegexOptions.Compiled),
                                                                      new Regex(
-                                                                         @".*\\[sS](?<seasonnumber>\d{1,4})[x,X]?[eE](?<epnumber>\d{1,3})[^\\]*$",
+                                                                         @".*(\\|\/)[sS](?<seasonnumber>\d{1,4})[x,X]?[eE](?<epnumber>\d{1,3})[^\\\/]*$",
                                                                          RegexOptions.Compiled),
                                                                      new Regex(
-                                                                         @".*\\(?<seriesname>((?![sS]?\d{1,4}[xX]\d{1,3})[^\\])*)?([sS]?(?<seasonnumber>\d{1,4})[xX](?<epnumber>\d{1,3}))[^\\]*$",
+                                                                         @".*(\\|\/)(?<seriesname>((?![sS]?\d{1,4}[xX]\d{1,3})[^\\\/])*)?([sS]?(?<seasonnumber>\d{1,4})[xX](?<epnumber>\d{1,3}))[^\\\/]*$",
                                                                          RegexOptions.Compiled),
                                                                      new Regex(
-                                                                         @".*\\(?<seriesname>[^\\]*)[sS](?<seasonnumber>\d{1,4})[xX\.]?[eE](?<epnumber>\d{1,3})[^\\]*$",
+                                                                         @".*(\\|\/)(?<seriesname>[^\\\/]*)[sS](?<seasonnumber>\d{1,4})[xX\.]?[eE](?<epnumber>\d{1,3})[^\\\/]*$",
                                                                          RegexOptions.Compiled)
                                                                  };
         private static readonly Regex[] MultipleEpisodeExpressions = new[]
                                                                  {
                                                                      new Regex(
-                                                                         @".*\\[sS]?(?<seasonnumber>\d{1,4})[xX](?<epnumber>\d{1,3})((-| - )\d{1,4}[eExX](?<endingepnumber>\d{1,3}))+[^\\]*$",
+                                                                         @".*(\\|\/)[sS]?(?<seasonnumber>\d{1,4})[xX](?<epnumber>\d{1,3})((-| - )\d{1,4}[eExX](?<endingepnumber>\d{1,3}))+[^\\\/]*$",
                                                                          RegexOptions.Compiled),
                                                                      new Regex(
-                                                                         @".*\\[sS]?(?<seasonnumber>\d{1,4})[xX](?<epnumber>\d{1,3})((-| - )\d{1,4}[xX][eE](?<endingepnumber>\d{1,3}))+[^\\]*$",
+                                                                         @".*(\\|\/)[sS]?(?<seasonnumber>\d{1,4})[xX](?<epnumber>\d{1,3})((-| - )\d{1,4}[xX][eE](?<endingepnumber>\d{1,3}))+[^\\\/]*$",
                                                                          RegexOptions.Compiled),
                                                                      new Regex(
-                                                                         @".*\\[sS]?(?<seasonnumber>\d{1,4})[xX](?<epnumber>\d{1,3})((-| - )?[xXeE](?<endingepnumber>\d{1,3}))+[^\\]*$",
+                                                                         @".*(\\|\/)[sS]?(?<seasonnumber>\d{1,4})[xX](?<epnumber>\d{1,3})((-| - )?[xXeE](?<endingepnumber>\d{1,3}))+[^\\\/]*$",
                                                                          RegexOptions.Compiled),
                                                                      new Regex(
-                                                                         @".*\\[sS]?(?<seasonnumber>\d{1,4})[xX](?<epnumber>\d{1,3})(-[xE]?[eE]?(?<endingepnumber>\d{1,3}))+[^\\]*$",
+                                                                         @".*(\\|\/)[sS]?(?<seasonnumber>\d{1,4})[xX](?<epnumber>\d{1,3})(-[xE]?[eE]?(?<endingepnumber>\d{1,3}))+[^\\\/]*$",
                                                                          RegexOptions.Compiled),
                                                                      new Regex(
-                                                                         @".*\\(?<seriesname>((?![sS]?\d{1,4}[xX]\d{1,3})[^\\])*)?([sS]?(?<seasonnumber>\d{1,4})[xX](?<epnumber>\d{1,3}))((-| - )\d{1,4}[xXeE](?<endingepnumber>\d{1,3}))+[^\\]*$",
+                                                                         @".*(\\|\/)(?<seriesname>((?![sS]?\d{1,4}[xX]\d{1,3})[^\\\/])*)?([sS]?(?<seasonnumber>\d{1,4})[xX](?<epnumber>\d{1,3}))((-| - )\d{1,4}[xXeE](?<endingepnumber>\d{1,3}))+[^\\\/]*$",
                                                                          RegexOptions.Compiled),
                                                                      new Regex(
-                                                                         @".*\\(?<seriesname>((?![sS]?\d{1,4}[xX]\d{1,3})[^\\])*)?([sS]?(?<seasonnumber>\d{1,4})[xX](?<epnumber>\d{1,3}))((-| - )\d{1,4}[xX][eE](?<endingepnumber>\d{1,3}))+[^\\]*$",
+                                                                         @".*(\\|\/)(?<seriesname>((?![sS]?\d{1,4}[xX]\d{1,3})[^\\\/])*)?([sS]?(?<seasonnumber>\d{1,4})[xX](?<epnumber>\d{1,3}))((-| - )\d{1,4}[xX][eE](?<endingepnumber>\d{1,3}))+[^\\\/]*$",
                                                                          RegexOptions.Compiled),
                                                                      new Regex(
-                                                                         @".*\\(?<seriesname>((?![sS]?\d{1,4}[xX]\d{1,3})[^\\])*)?([sS]?(?<seasonnumber>\d{1,4})[xX](?<epnumber>\d{1,3}))((-| - )?[xXeE](?<endingepnumber>\d{1,3}))+[^\\]*$",
+                                                                         @".*(\\|\/)(?<seriesname>((?![sS]?\d{1,4}[xX]\d{1,3})[^\\\/])*)?([sS]?(?<seasonnumber>\d{1,4})[xX](?<epnumber>\d{1,3}))((-| - )?[xXeE](?<endingepnumber>\d{1,3}))+[^\\\/]*$",
                                                                          RegexOptions.Compiled),
                                                                      new Regex(
-                                                                         @".*\\(?<seriesname>((?![sS]?\d{1,4}[xX]\d{1,3})[^\\])*)?([sS]?(?<seasonnumber>\d{1,4})[xX](?<epnumber>\d{1,3}))(-[xX]?[eE]?(?<endingepnumber>\d{1,3}))+[^\\]*$",
+                                                                         @".*(\\|\/)(?<seriesname>((?![sS]?\d{1,4}[xX]\d{1,3})[^\\\/])*)?([sS]?(?<seasonnumber>\d{1,4})[xX](?<epnumber>\d{1,3}))(-[xX]?[eE]?(?<endingepnumber>\d{1,3}))+[^\\\/]*$",
                                                                          RegexOptions.Compiled),
                                                                      new Regex(
-                                                                         @".*\\(?<seriesname>[^\\]*)[sS](?<seasonnumber>\d{1,4})[xX\.]?[eE](?<epnumber>\d{1,3})((-| - )?[xXeE](?<endingepnumber>\d{1,3}))+[^\\]*$",
+                                                                         @".*(\\|\/)(?<seriesname>[^\\\/]*)[sS](?<seasonnumber>\d{1,4})[xX\.]?[eE](?<epnumber>\d{1,3})((-| - )?[xXeE](?<endingepnumber>\d{1,3}))+[^\\\/]*$",
                                                                          RegexOptions.Compiled),
                                                                      new Regex(
-                                                                         @".*\\(?<seriesname>[^\\]*)[sS](?<seasonnumber>\d{1,4})[xX\.]?[eE](?<epnumber>\d{1,3})(-[xX]?[eE]?(?<endingepnumber>\d{1,3}))+[^\\]*$",
+                                                                         @".*(\\|\/)(?<seriesname>[^\\\/]*)[sS](?<seasonnumber>\d{1,4})[xX\.]?[eE](?<epnumber>\d{1,3})(-[xX]?[eE]?(?<endingepnumber>\d{1,3}))+[^\\\/]*$",
                                                                          RegexOptions.Compiled)
                                                                  };
 
@@ -97,19 +97,19 @@ namespace MediaBrowser.Controller.Library
         private static readonly Regex[] EpisodeExpressionsInASeasonFolder = new[]
                                                                                 {
                                                                                     new Regex(
-                                                                                        @".*\\(?<epnumber>\d{1,2})\s?-\s?[^\\]*$",
+                                                                                        @".*(\\|\/)(?<epnumber>\d{1,2})\s?-\s?[^\\\/]*$",
                                                                                         RegexOptions.Compiled),
                                                                                     // 01 - blah.avi, 01-blah.avi
                                                                                     new Regex(
-                                                                                        @".*\\(?<epnumber>\d{1,2})[^\d\\]*[^\\]*$",
+                                                                                        @".*(\\|\/)(?<epnumber>\d{1,2})[^\d\\]*[^\\\/]*$",
                                                                                         RegexOptions.Compiled),
                                                                                     // 01.avi, 01.blah.avi "01 - 22 blah.avi" 
                                                                                     new Regex(
-                                                                                        @".*\\(?<seasonnumber>\d)(?<epnumber>\d{1,2})[^\d\\]+[^\\]*$",
+                                                                                        @".*(\\|\/)(?<seasonnumber>\d)(?<epnumber>\d{1,2})[^\d\\]+[^\\\/]*$",
                                                                                         RegexOptions.Compiled),
                                                                                     // 01.avi, 01.blah.avi
                                                                                     new Regex(
-                                                                                        @".*\\\D*\d+(?<epnumber>\d{2})",
+                                                                                        @".*(\\|\/)\D*\d+(?<epnumber>\d{2})",
                                                                                         RegexOptions.Compiled)
                                                                                     // hell0 - 101 -  hello.avi
 

+ 1 - 1
MediaBrowser.Tests/Resolvers/TvUtilTests.cs

@@ -211,7 +211,7 @@ namespace MediaBrowser.Tests.Resolvers
             Assert.AreEqual(2009, TVUtils.GetSeasonNumberFromEpisodeFile(@"Season 2009\Elementary - S2009E23-E24-E26 - The Woman.mp4"));
             Assert.AreEqual(2009, TVUtils.GetSeasonNumberFromEpisodeFile(@"Season 2009\S2009E23-E24-E26 - The Woman.mp4"));
             Assert.AreEqual(25, TVUtils.GetSeasonNumberFromEpisodeFile(@"Season 25\The Simpsons.S25E09.Steal this episode.mp4"));
-
+            Assert.AreEqual(25, TVUtils.GetSeasonNumberFromEpisodeFile(@"The Simpsons\The Simpsons.S25E09.Steal this episode.mp4"));
         }
     }
 }