Explorar o código

Merge pull request #3880 from DirtyRacer1337/datetime

Fix year parsing
Bond-009 %!s(int64=4) %!d(string=hai) anos
pai
achega
6d154041b9

+ 2 - 2
Emby.Naming/Common/NamingOptions.cs

@@ -136,8 +136,8 @@ namespace Emby.Naming.Common
 
 
             CleanDateTimes = new[]
             CleanDateTimes = new[]
             {
             {
-                @"(.+[^_\,\.\(\)\[\]\-])[_\.\(\)\[\]\-](19[0-9]{2}|20[0-9]{2})([ _\,\.\(\)\[\]\-][^0-9]|).*(19[0-9]{2}|20[0-9]{2})*",
-                @"(.+[^_\,\.\(\)\[\]\-])[ _\.\(\)\[\]\-]+(19[0-9]{2}|20[0-9]{2})([ _\,\.\(\)\[\]\-][^0-9]|).*(19[0-9]{2}|20[0-9]{2})*"
+                @"(.+[^_\,\.\(\)\[\]\-])[_\.\(\)\[\]\-](19[0-9]{2}|20[0-9]{2})(?![0-9]+|\W[0-9]{2}\W[0-9]{2})([ _\,\.\(\)\[\]\-][^0-9]|).*(19[0-9]{2}|20[0-9]{2})*",
+                @"(.+[^_\,\.\(\)\[\]\-])[ _\.\(\)\[\]\-]+(19[0-9]{2}|20[0-9]{2})(?![0-9]+|\W[0-9]{2}\W[0-9]{2})([ _\,\.\(\)\[\]\-][^0-9]|).*(19[0-9]{2}|20[0-9]{2})*"
             };
             };
 
 
             CleanStrings = new[]
             CleanStrings = new[]

+ 4 - 0
tests/Jellyfin.Naming.Tests/Video/CleanDateTimeTests.cs

@@ -47,6 +47,10 @@ namespace Jellyfin.Naming.Tests.Video
         // FIXME: [InlineData("Robin Hood [Multi-Subs] [2018].mkv", "Robin Hood", 2018)]
         // FIXME: [InlineData("Robin Hood [Multi-Subs] [2018].mkv", "Robin Hood", 2018)]
         [InlineData(@"3.Days.to.Kill.2014.720p.BluRay.x264.YIFY.mkv", "3.Days.to.Kill", 2014)] // In this test case, running CleanDateTime first produces no date, so it will attempt to run CleanString first and then CleanDateTime again
         [InlineData(@"3.Days.to.Kill.2014.720p.BluRay.x264.YIFY.mkv", "3.Days.to.Kill", 2014)] // In this test case, running CleanDateTime first produces no date, so it will attempt to run CleanString first and then CleanDateTime again
         [InlineData("3 days to kill (2005).mkv", "3 days to kill", 2005)]
         [InlineData("3 days to kill (2005).mkv", "3 days to kill", 2005)]
+        [InlineData("My Movie 2013.12.09", "My Movie 2013.12.09", null)]
+        [InlineData("My Movie 2013-12-09", "My Movie 2013-12-09", null)]
+        [InlineData("My Movie 20131209", "My Movie 20131209", null)]
+        [InlineData("My Movie 2013-12-09 2013", "My Movie 2013-12-09", 2013)]
         public void CleanDateTimeTest(string input, string expectedName, int? expectedYear)
         public void CleanDateTimeTest(string input, string expectedName, int? expectedYear)
         {
         {
             input = Path.GetFileName(input);
             input = Path.GetFileName(input);