Browse Source

Backport pull request #15326 from jellyfin/release-10.11.z

Skip too large extracted season numbers

Original-merge: e7dbb3afec3282c556e4fe35d9376ecaa4417171

Merged-by: crobibero <cody@robibe.ro>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
Shadowghost 2 weeks ago
parent
commit
87b02b1316

+ 4 - 2
Emby.Naming/TV/SeasonPathParser.cs

@@ -113,8 +113,10 @@ namespace Emby.Naming.TV
             var numberString = match.Groups["seasonnumber"];
             if (numberString.Success)
             {
-                var seasonNumber = int.Parse(numberString.Value, CultureInfo.InvariantCulture);
-                return (seasonNumber, true);
+                if (int.TryParse(numberString.Value, NumberStyles.Integer, CultureInfo.InvariantCulture, out var seasonNumber))
+                {
+                    return (seasonNumber, true);
+                }
             }
 
             return (null, false);

+ 3 - 0
tests/Jellyfin.Naming.Tests/TV/SeasonPathParserTests.cs

@@ -66,6 +66,9 @@ public class SeasonPathParserTests
     [InlineData("/Drive/SPECIALS", "/Drive", 0, true)]
     [InlineData("/Drive/Episode 1 Season 2", "/Drive", null, false)]
     [InlineData("/Drive/Episode 1 SEASON 2", "/Drive", null, false)]
+    [InlineData("/media/YouTube/Devyn Johnston/2024-01-24 4070 Ti SUPER in under 7 minutes", "/media/YouTube/Devyn Johnston", null, false)]
+    [InlineData("/media/YouTube/Devyn Johnston/2025-01-28 5090 vs 2 SFF Cases", "/media/YouTube/Devyn Johnston", null, false)]
+    [InlineData("/Drive/202401244070", "/Drive", null, false)]
     public void GetSeasonNumberFromPathTest(string path, string? parentPath, int? seasonNumber, bool isSeasonDirectory)
     {
         var result = SeasonPathParser.Parse(path, parentPath, true, true);