소스 검색

Merge pull request #3880 from DirtyRacer1337/datetime

Fix year parsing
Bond-009 4 년 전
부모
커밋
6d154041b9
2개의 변경된 파일6개의 추가작업 그리고 2개의 파일을 삭제
  1. 2 2
      Emby.Naming/Common/NamingOptions.cs
  2. 4 0
      tests/Jellyfin.Naming.Tests/Video/CleanDateTimeTests.cs

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

@@ -136,8 +136,8 @@ namespace Emby.Naming.Common
 
             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[]

+ 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)]
         [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("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)
         {
             input = Path.GetFileName(input);