diff options
Diffstat (limited to 'MediaBrowser.XbmcMetadata/Savers/BaseNfoSaver.cs')
| -rw-r--r-- | MediaBrowser.XbmcMetadata/Savers/BaseNfoSaver.cs | 34 |
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(); } } |
