diff options
| author | LukePulverenti <luke.pulverenti@gmail.com> | 2013-03-03 01:58:04 -0500 |
|---|---|---|
| committer | LukePulverenti <luke.pulverenti@gmail.com> | 2013-03-03 01:58:04 -0500 |
| commit | ac3a94f5a1dbb94b374e0160c344fcf99af9b696 (patch) | |
| tree | f8b109c3bb5ebce964363e9df874bf3235259616 /MediaBrowser.Server.Implementations/Library/LibraryManager.cs | |
| parent | 627b8370a89cbf9826898c2edfc46767dfb5272a (diff) | |
moved resolvers to implementations, trimmed nuget package a bit
Diffstat (limited to 'MediaBrowser.Server.Implementations/Library/LibraryManager.cs')
| -rw-r--r-- | MediaBrowser.Server.Implementations/Library/LibraryManager.cs | 30 |
1 files changed, 24 insertions, 6 deletions
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 /// </summary> /// <value>The entity resolution ignore rules.</value> - private IEnumerable<IResolutionIgnoreRule> EntityResolutionIgnoreRules { get; set; } + private IEnumerable<IResolverIgnoreRule> EntityResolutionIgnoreRules { get; set; } /// <summary> /// 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 /// </summary> /// <value>The entity resolvers enumerable.</value> - private IEnumerable<IBaseItemResolver> EntityResolvers { get; set; } + private IEnumerable<IItemResolver> EntityResolvers { get; set; } #region LibraryChanged Event /// <summary> @@ -113,7 +113,7 @@ namespace MediaBrowser.Server.Implementations.Library /// <param name="pluginFolders">The plugin folders.</param> /// <param name="resolvers">The resolvers.</param> /// <param name="introProviders">The intro providers.</param> - public void AddParts(IEnumerable<IResolutionIgnoreRule> rules, IEnumerable<IVirtualFolderCreator> pluginFolders, IEnumerable<IBaseItemResolver> resolvers, IEnumerable<IIntroProvider> introProviders) + public void AddParts(IEnumerable<IResolverIgnoreRule> rules, IEnumerable<IVirtualFolderCreator> pluginFolders, IEnumerable<IItemResolver> resolvers, IEnumerable<IIntroProvider> introProviders) { EntityResolutionIgnoreRules = rules; PluginFolderCreators = pluginFolders; @@ -189,7 +189,14 @@ namespace MediaBrowser.Server.Implementations.Library /// <returns>BaseItem.</returns> 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; } /// <summary> @@ -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; } @@ -246,6 +253,17 @@ namespace MediaBrowser.Server.Implementations.Library } /// <summary> + /// Determines whether a path should be ignored based on its contents - called after the contents have been read + /// </summary> + /// <param name="args">The args.</param> + /// <returns><c>true</c> if XXXX, <c>false</c> otherwise</returns> + private static bool ShouldResolvePathContents(ItemResolveArgs args) + { + // Ignore any folders containing a file called .ignore + return !args.ContainsFileSystemEntryByName(".ignore"); + } + + /// <summary> /// Resolves a set of files into a list of BaseItem /// </summary> /// <typeparam name="T"></typeparam> |
