aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.XbmcMetadata/Savers/BaseNfoSaver.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.XbmcMetadata/Savers/BaseNfoSaver.cs')
-rw-r--r--MediaBrowser.XbmcMetadata/Savers/BaseNfoSaver.cs34
1 files changed, 19 insertions, 15 deletions
diff --git a/MediaBrowser.XbmcMetadata/Savers/BaseNfoSaver.cs b/MediaBrowser.XbmcMetadata/Savers/BaseNfoSaver.cs
index 0217bded13..4ca3aa9ef5 100644
--- a/MediaBrowser.XbmcMetadata/Savers/BaseNfoSaver.cs
+++ b/MediaBrowser.XbmcMetadata/Savers/BaseNfoSaver.cs
@@ -547,7 +547,7 @@ namespace MediaBrowser.XbmcMetadata.Savers
writer.WriteElementString("aspectratio", hasAspectRatio.AspectRatio);
}
- if (item.TryGetProviderId(MetadataProvider.Tmdb, out var tmdbCollection))
+ if (item.TryGetProviderId(MetadataProvider.TmdbCollection, out var tmdbCollection))
{
writer.WriteElementString("collectionnumber", tmdbCollection);
writtenProviderIds.Add(MetadataProvider.TmdbCollection.ToString());
@@ -781,26 +781,30 @@ namespace MediaBrowser.XbmcMetadata.Savers
private void AddCollectionItems(Folder item, XmlWriter writer)
{
- var items = item.LinkedChildren
+ var linkedChildren = item.LinkedChildren
.Where(i => i.Type == LinkedChildType.Manual)
- .OrderBy(i => i.Path?.Trim())
- .ThenBy(i => i.LibraryItemId?.Trim())
.ToList();
- foreach (var link in items)
- {
- writer.WriteStartElement("collectionitem");
-
- if (!string.IsNullOrWhiteSpace(link.Path))
+ // Resolve ItemIds to paths and sort
+ var itemsWithPaths = linkedChildren
+ .Select(link =>
{
- writer.WriteElementString("path", link.Path);
- }
+ if (link.ItemId.HasValue && !link.ItemId.Value.Equals(Guid.Empty))
+ {
+ var linkedItem = LibraryManager.GetItemById(link.ItemId.Value);
+ return linkedItem?.Path;
+ }
- if (!string.IsNullOrWhiteSpace(link.LibraryItemId))
- {
- writer.WriteElementString("ItemId", link.LibraryItemId);
- }
+ return null;
+ })
+ .Where(path => !string.IsNullOrWhiteSpace(path))
+ .OrderBy(path => path?.Trim())
+ .ToList();
+ foreach (var path in itemsWithPaths)
+ {
+ writer.WriteStartElement("collectionitem");
+ writer.WriteElementString("path", path);
writer.WriteEndElement();
}
}