From f3a7307ebb9a1a484a82563c4cfab6bf461c7631 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Mon, 20 May 2013 23:16:43 -0400 Subject: reduce requests against tvdb by getting entire series metadata at once --- .../Library/LibraryManager.cs | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) (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 b692e97f3..2068ac0da 100644 --- a/MediaBrowser.Server.Implementations/Library/LibraryManager.cs +++ b/MediaBrowser.Server.Implementations/Library/LibraryManager.cs @@ -31,6 +31,8 @@ namespace MediaBrowser.Server.Implementations.Library /// public class LibraryManager : ILibraryManager { + private IEnumerable PrescanTasks { get; set; } + /// /// Gets the intro providers. /// @@ -161,13 +163,15 @@ namespace MediaBrowser.Server.Implementations.Library IEnumerable pluginFolders, IEnumerable resolvers, IEnumerable introProviders, - IEnumerable itemComparers) + IEnumerable itemComparers, + IEnumerable prescanTasks) { EntityResolutionIgnoreRules = rules; PluginFolderCreators = pluginFolders; EntityResolvers = resolvers.OrderBy(i => i.Priority).ToArray(); IntroProviders = introProviders; Comparers = itemComparers; + PrescanTasks = prescanTasks; } /// @@ -841,6 +845,19 @@ namespace MediaBrowser.Server.Implementations.Library await ValidateCollectionFolders(folder, cancellationToken).ConfigureAwait(false); } + // Run prescan tasks + foreach (var task in PrescanTasks) + { + try + { + await task.Run(new Progress(), cancellationToken); + } + catch (Exception ex) + { + _logger.ErrorException("Error running prescan task", ex); + } + } + var innerProgress = new ActionableProgress(); innerProgress.RegisterAction(pct => progress.Report(pct * .8)); -- cgit v1.2.3