diff options
| author | Joshua M. Boniface <joshua@boniface.me> | 2025-10-11 17:21:32 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-10-11 17:21:32 -0400 |
| commit | 2e6430c4f433daea25fb55a9d37440ffdfb04656 (patch) | |
| tree | 1f807ce2590391baa5185e4882e86d4f3d45b81d | |
| parent | c88d792963ef71fb9a7fccdc42c4d7a5a4adc136 (diff) | |
| parent | e28d5470061960b5b3ed6e5ee6b89306ef429182 (diff) | |
Merge pull request #14965 from KGT1/mapTmdbcol
add xmbc nfo uniqueid type norminalisation
3 files changed, 33 insertions, 1 deletions
diff --git a/MediaBrowser.XbmcMetadata/Parsers/BaseNfoParser.cs b/MediaBrowser.XbmcMetadata/Parsers/BaseNfoParser.cs index 75ad0d58c..4cbcd8f27 100644 --- a/MediaBrowser.XbmcMetadata/Parsers/BaseNfoParser.cs +++ b/MediaBrowser.XbmcMetadata/Parsers/BaseNfoParser.cs @@ -107,6 +107,7 @@ namespace MediaBrowser.XbmcMetadata.Parsers // Additional Mappings _validProviderIds.Add("collectionnumber", "TmdbCollection"); _validProviderIds.Add("tmdbcolid", "TmdbCollection"); + _validProviderIds.Add("tmdbcol", "TmdbCollection"); _validProviderIds.Add("imdb_id", "Imdb"); Fetch(item, metadataFile, GetXmlReaderSettings(), cancellationToken); @@ -590,7 +591,18 @@ namespace MediaBrowser.XbmcMetadata.Parsers var provider = reader.GetAttribute("type"); var providerId = reader.ReadElementContentAsString(); - item.TrySetProviderId(provider, providerId); + + if (!string.IsNullOrEmpty(provider)) + { + if (_validProviderIds.TryGetValue(provider, out string? normalizedProvider)) + { + item.TrySetProviderId(normalizedProvider, providerId); + } + else + { + item.TrySetProviderId(provider, providerId); + } + } break; case "thumb": diff --git a/tests/Jellyfin.XbmcMetadata.Tests/Parsers/MovieNfoParserTests.cs b/tests/Jellyfin.XbmcMetadata.Tests/Parsers/MovieNfoParserTests.cs index e422eb9b8..1e8652f4b 100644 --- a/tests/Jellyfin.XbmcMetadata.Tests/Parsers/MovieNfoParserTests.cs +++ b/tests/Jellyfin.XbmcMetadata.Tests/Parsers/MovieNfoParserTests.cs @@ -275,5 +275,24 @@ namespace Jellyfin.XbmcMetadata.Tests.Parsers Assert.StartsWith(">>", item.Overview, StringComparison.InvariantCulture); Assert.EndsWith("<<", item.Overview, StringComparison.InvariantCulture); } + + [Fact] + public void Parse_TmdbcolUniqueId_NormalizedToTmdbCollection() + { + var result = new MetadataResult<Video>() + { + Item = new Movie() + }; + + _parser.Fetch(result, "Test Data/Lilo & Stitch.nfo", CancellationToken.None); + var item = (Movie)result.Item; + + // Verify that <uniqueid type="tmdbcol"> is normalized to TmdbCollection + Assert.True(item.ProviderIds.ContainsKey(MetadataProvider.TmdbCollection.ToString())); + Assert.Equal("97020", item.ProviderIds[MetadataProvider.TmdbCollection.ToString()]); + + // Verify that the lowercase "tmdbcol" is NOT in the provider IDs + Assert.False(item.ProviderIds.ContainsKey("tmdbcol")); + } } } diff --git a/tests/Jellyfin.XbmcMetadata.Tests/Test Data/Lilo & Stitch.nfo b/tests/Jellyfin.XbmcMetadata.Tests/Test Data/Lilo & Stitch.nfo index 1eab687a2..ca0be5dcc 100644 --- a/tests/Jellyfin.XbmcMetadata.Tests/Test Data/Lilo & Stitch.nfo +++ b/tests/Jellyfin.XbmcMetadata.Tests/Test Data/Lilo & Stitch.nfo @@ -2,6 +2,7 @@ <movie> <title>Lilo & Stitch</title> <originaltitle>Lilo & Stitch</originaltitle> + <uniqueid type="tmdbcol" default="false">97020</uniqueid> <set>Lilo & Stitch Collection</set> <plot>>>As Stitch, a runaway genetic experiment from a faraway planet, wreaks havoc on the Hawaiian Islands, he becomes the mischievous adopted alien "puppy" of an independent little girl named Lilo and learns about loyalty, friendship, and ʻohana, the Hawaiian tradition of family.<<</plot> </movie> |
