aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.XbmcMetadata
diff options
context:
space:
mode:
authorNiels van Velzen <nielsvanvelzen@users.noreply.github.com>2026-05-03 21:56:34 +0200
committerGitHub <noreply@github.com>2026-05-03 21:56:34 +0200
commit6e22075a63432aae48859cf9c67fde158dc80d2e (patch)
treec3a33238cc56857d8e3daa56db01f290118c9215 /MediaBrowser.XbmcMetadata
parentd9ced0d6399c82ddad9e983605bb0d828a608e63 (diff)
parentd68d0fa96267ad96eaa5a0ba37e072f59a71442a (diff)
Merge pull request #16062 from Shadowghost/perf-rebased
Query Performance Improvements
Diffstat (limited to 'MediaBrowser.XbmcMetadata')
-rw-r--r--MediaBrowser.XbmcMetadata/Savers/BaseNfoSaver.cs32
1 files changed, 18 insertions, 14 deletions
diff --git a/MediaBrowser.XbmcMetadata/Savers/BaseNfoSaver.cs b/MediaBrowser.XbmcMetadata/Savers/BaseNfoSaver.cs
index 0757155aac..4ca3aa9ef5 100644
--- a/MediaBrowser.XbmcMetadata/Savers/BaseNfoSaver.cs
+++ b/MediaBrowser.XbmcMetadata/Savers/BaseNfoSaver.cs
@@ -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();
}
}