From 99959f5d10899167fea23d15ed9f858403053a2e Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Sat, 18 May 2013 17:47:00 -0400 Subject: [PATCH] fixed image providers from running everytime against collection folders --- MediaBrowser.Controller/Entities/BaseItem.cs | 3 +-- MediaBrowser.Controller/Entities/CollectionFolder.cs | 2 +- MediaBrowser.Controller/Entities/Folder.cs | 2 +- MediaBrowser.Controller/Providers/ImagesByNameProvider.cs | 3 ++- .../Library/LibraryManager.cs | 6 +++--- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/MediaBrowser.Controller/Entities/BaseItem.cs b/MediaBrowser.Controller/Entities/BaseItem.cs index ca3ef7fac5..1bc6b523e7 100644 --- a/MediaBrowser.Controller/Entities/BaseItem.cs +++ b/MediaBrowser.Controller/Entities/BaseItem.cs @@ -905,7 +905,6 @@ namespace MediaBrowser.Controller.Entities if (changed || forceSave || themeSongsChanged || themeVideosChanged || localTrailersChanged) { cancellationToken.ThrowIfCancellationRequested(); - await LibraryManager.UpdateItem(this, cancellationToken).ConfigureAwait(false); } @@ -1506,7 +1505,7 @@ namespace MediaBrowser.Controller.Entities } // Refresh metadata - return RefreshMetadata(CancellationToken.None); + return RefreshMetadata(CancellationToken.None, forceSave: true); } } } diff --git a/MediaBrowser.Controller/Entities/CollectionFolder.cs b/MediaBrowser.Controller/Entities/CollectionFolder.cs index 67692273d7..70f3548f38 100644 --- a/MediaBrowser.Controller/Entities/CollectionFolder.cs +++ b/MediaBrowser.Controller/Entities/CollectionFolder.cs @@ -15,7 +15,7 @@ namespace MediaBrowser.Controller.Entities /// Specialized Folder class that points to a subset of the physical folders in the system. /// It is created from the user-specific folders within the system root /// - public class CollectionFolder : Folder, ICollectionFolder, IByReferenceItem + public class CollectionFolder : Folder, ICollectionFolder { /// /// Gets a value indicating whether this instance is virtual folder. diff --git a/MediaBrowser.Controller/Entities/Folder.cs b/MediaBrowser.Controller/Entities/Folder.cs index 472cc115ec..66a4ca215f 100644 --- a/MediaBrowser.Controller/Entities/Folder.cs +++ b/MediaBrowser.Controller/Entities/Folder.cs @@ -760,7 +760,7 @@ namespace MediaBrowser.Controller.Entities var child = currentTuple.Item1; //refresh it - await child.RefreshMetadata(cancellationToken, resetResolveArgs: child.IsFolder).ConfigureAwait(false); + await child.RefreshMetadata(cancellationToken, resetResolveArgs: child.IsFolder, forceSave: currentTuple.Item2).ConfigureAwait(false); // Refresh children if a folder and the item changed or recursive is set to true var refreshChildren = child.IsFolder && (currentTuple.Item2 || (recursive.HasValue && recursive.Value)); diff --git a/MediaBrowser.Controller/Providers/ImagesByNameProvider.cs b/MediaBrowser.Controller/Providers/ImagesByNameProvider.cs index 64a9883780..3611607c9f 100644 --- a/MediaBrowser.Controller/Providers/ImagesByNameProvider.cs +++ b/MediaBrowser.Controller/Providers/ImagesByNameProvider.cs @@ -126,7 +126,8 @@ namespace MediaBrowser.Controller.Providers } data.Data = ConfigurationManager.ApplicationPaths.ItemsByNamePath.GetMD5(); - + SetLastRefreshed(item, DateTime.UtcNow); + return result; } diff --git a/MediaBrowser.Server.Implementations/Library/LibraryManager.cs b/MediaBrowser.Server.Implementations/Library/LibraryManager.cs index 65905b0824..b692e97f30 100644 --- a/MediaBrowser.Server.Implementations/Library/LibraryManager.cs +++ b/MediaBrowser.Server.Implementations/Library/LibraryManager.cs @@ -269,16 +269,16 @@ namespace MediaBrowser.Server.Implementations.Library // Need to use DistinctBy Id because there could be multiple instances with the same id // due to sharing the default library var userRootFolders = _userManager.Users.Select(i => i.RootFolder) - .DistinctBy(i => i.Id) + .Distinct() .ToList(); items.AddRange(userRootFolders); // Get all user collection folders + // Skip BasePluginFolders because we already got them from RootFolder.RecursiveChildren var userFolders = - _userManager.Users.SelectMany(i => i.RootFolder.Children) + userRootFolders.SelectMany(i => i.Children) .Where(i => !(i is BasePluginFolder)) - .DistinctBy(i => i.Id) .ToList(); items.AddRange(userFolders);