From 721f0df82afdd3d79bcfe29383230913b66e83f8 Mon Sep 17 00:00:00 2001 From: Jason Dove <1695733+jasongdove@users.noreply.github.com> Date: Fri, 31 Mar 2023 13:37:54 -0500 Subject: [PATCH] fix library scanning with non-english season folder names (#1222) --- CHANGELOG.md | 1 + .../Metadata/FallbackMetadataProviderTests.cs | 2 ++ ErsatzTV.Core/Metadata/FallbackMetadataProvider.cs | 7 ++++++- 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e3eebe7b5..03912eafa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). ### Fixed - Fix updating (re-adding) Trakt lists to properly use new metadata ids that were not present when originally added +- Fix local show library scanning with non-english season folder names, e.g. `Staffel 02` ### Changed - Use Poster artwork for XMLTV if available diff --git a/ErsatzTV.Core.Tests/Metadata/FallbackMetadataProviderTests.cs b/ErsatzTV.Core.Tests/Metadata/FallbackMetadataProviderTests.cs index bc418ad51..7c011de35 100644 --- a/ErsatzTV.Core.Tests/Metadata/FallbackMetadataProviderTests.cs +++ b/ErsatzTV.Core.Tests/Metadata/FallbackMetadataProviderTests.cs @@ -155,6 +155,8 @@ public class FallbackMetadataProviderTests [TestCase(@"/Whatever/American Dad! S01", 1)] [TestCase(@"/Whatever/Season 2", 2)] [TestCase(@"/Whatever/Season 02", 2)] + [TestCase(@"/Whatever/Staffel 2", 2)] + [TestCase(@"/Whatever/Staffel 02", 2)] [TestCase(@"/Whatever/Seinfeld/S02", 2)] [TestCase(@"/Whatever/Seinfeld/2", 2)] [TestCase(@"/Whatever/Season 2009", 2009)] diff --git a/ErsatzTV.Core/Metadata/FallbackMetadataProvider.cs b/ErsatzTV.Core/Metadata/FallbackMetadataProvider.cs index 70d05e553..3971cf2fd 100644 --- a/ErsatzTV.Core/Metadata/FallbackMetadataProvider.cs +++ b/ErsatzTV.Core/Metadata/FallbackMetadataProvider.cs @@ -19,13 +19,18 @@ public partial class FallbackMetadataProvider : IFallbackMetadataProvider { return seasonNumber; } - + Match match = SeasonPattern.Match(folderName); if (match.Success && int.TryParse(match.Groups[1].Value, out seasonNumber)) { return seasonNumber; } + if (int.TryParse(folder.Split(" ").Last(), out seasonNumber)) + { + return seasonNumber; + } + if (folder.EndsWith("specials", StringComparison.OrdinalIgnoreCase)) { return 0;