From ac3a94f5a1dbb94b374e0160c344fcf99af9b696 Mon Sep 17 00:00:00 2001 From: LukePulverenti Date: Sun, 3 Mar 2013 01:58:04 -0500 Subject: moved resolvers to implementations, trimmed nuget package a bit --- .../Library/LibraryManager.cs | 30 +++++++++++++++++----- 1 file changed, 24 insertions(+), 6 deletions(-) (limited to 'MediaBrowser.Server.Implementations/Library/LibraryManager.cs') diff --git a/MediaBrowser.Server.Implementations/Library/LibraryManager.cs b/MediaBrowser.Server.Implementations/Library/LibraryManager.cs index ba54b5d2b..e778b35df 100644 --- a/MediaBrowser.Server.Implementations/Library/LibraryManager.cs +++ b/MediaBrowser.Server.Implementations/Library/LibraryManager.cs @@ -6,10 +6,10 @@ using MediaBrowser.Controller; using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.IO; using MediaBrowser.Controller.Library; -using MediaBrowser.Controller.Resolvers; using MediaBrowser.Controller.ScheduledTasks; using MediaBrowser.Model.Entities; using MediaBrowser.Model.Logging; +using MediaBrowser.Server.Implementations.Library.Resolvers; using MoreLinq; using System; using System.Collections.Concurrent; @@ -37,7 +37,7 @@ namespace MediaBrowser.Server.Implementations.Library /// Gets the list of entity resolution ignore rules /// /// The entity resolution ignore rules. - private IEnumerable EntityResolutionIgnoreRules { get; set; } + private IEnumerable EntityResolutionIgnoreRules { get; set; } /// /// Gets the list of BasePluginFolders added by plugins @@ -49,7 +49,7 @@ namespace MediaBrowser.Server.Implementations.Library /// Gets the list of currently registered entity resolvers /// /// The entity resolvers enumerable. - private IEnumerable EntityResolvers { get; set; } + private IEnumerable EntityResolvers { get; set; } #region LibraryChanged Event /// @@ -113,7 +113,7 @@ namespace MediaBrowser.Server.Implementations.Library /// The plugin folders. /// The resolvers. /// The intro providers. - public void AddParts(IEnumerable rules, IEnumerable pluginFolders, IEnumerable resolvers, IEnumerable introProviders) + public void AddParts(IEnumerable rules, IEnumerable pluginFolders, IEnumerable resolvers, IEnumerable introProviders) { EntityResolutionIgnoreRules = rules; PluginFolderCreators = pluginFolders; @@ -189,7 +189,14 @@ namespace MediaBrowser.Server.Implementations.Library /// BaseItem. public BaseItem ResolveItem(ItemResolveArgs args) { - return EntityResolvers.Select(r => r.ResolvePath(args)).FirstOrDefault(i => i != null); + var item = EntityResolvers.Select(r => r.ResolvePath(args)).FirstOrDefault(i => i != null); + + if (item != null) + { + ResolverHelper.SetInitialItemValues(item, args); + } + + return item; } /// @@ -237,7 +244,7 @@ namespace MediaBrowser.Server.Implementations.Library } // Check to see if we should resolve based on our contents - if (args.IsDirectory && !EntityResolutionHelper.ShouldResolvePathContents(args)) + if (args.IsDirectory && !ShouldResolvePathContents(args)) { return null; } @@ -245,6 +252,17 @@ namespace MediaBrowser.Server.Implementations.Library return ResolveItem(args); } + /// + /// Determines whether a path should be ignored based on its contents - called after the contents have been read + /// + /// The args. + /// true if XXXX, false otherwise + private static bool ShouldResolvePathContents(ItemResolveArgs args) + { + // Ignore any folders containing a file called .ignore + return !args.ContainsFileSystemEntryByName(".ignore"); + } + /// /// Resolves a set of files into a list of BaseItem /// -- cgit v1.2.3