Merge pull request #14965 from KGT1/mapTmdbcol
Some checks failed
Stale PR Check / Check PRs with merge conflicts (push) Has been cancelled
CodeQL / Analyze (csharp) (push) Has been cancelled
OpenAPI / OpenAPI - HEAD (push) Has been cancelled
OpenAPI / OpenAPI - BASE (push) Has been cancelled
OpenAPI / OpenAPI - Difference (push) Has been cancelled
OpenAPI / OpenAPI - Publish Unstable Spec (push) Has been cancelled
OpenAPI / OpenAPI - Publish Stable Spec (push) Has been cancelled
Tests / run-tests (macos-latest) (push) Has been cancelled
Tests / run-tests (ubuntu-latest) (push) Has been cancelled
Tests / run-tests (windows-latest) (push) Has been cancelled
Project Automation / Project board (push) Has been cancelled
Merge Conflict Labeler / Labeling (push) Has been cancelled
Stale Issue Labeler / Check for stale issues (push) Has been cancelled

add xmbc nfo uniqueid type norminalisation
This commit is contained in:
Joshua M. Boniface
2025-10-11 17:21:32 -04:00
committed by GitHub
3 changed files with 33 additions and 1 deletions

View File

@@ -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":

View File

@@ -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"));
}
}
}

View File

@@ -2,6 +2,7 @@
<movie>
<title>Lilo &amp; Stitch</title>
<originaltitle>Lilo &amp; Stitch</originaltitle>
<uniqueid type="tmdbcol" default="false">97020</uniqueid>
<set>Lilo &amp; Stitch Collection</set>
<plot>&gt;&gt;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.&lt;&lt;</plot>
</movie>