From af7aa597c35279e286ee88641854db69744e7b15 Mon Sep 17 00:00:00 2001 From: LukePulverenti Date: Thu, 28 Feb 2013 14:32:41 -0500 Subject: [PATCH] referenced core plugins, fixed some dashboard issues, extracted library manager --- BDInfo/BDInfo.csproj | 1 - MediaBrowser.Api/EnvironmentService.cs | 20 ++- MediaBrowser.Api/Images/ImageService.cs | 26 ++-- MediaBrowser.Api/Library/LibraryService.cs | 36 ++--- .../Library/LibraryStructureService.cs | 14 +- MediaBrowser.Api/MediaBrowser.Api.csproj | 3 +- .../Playback/BaseStreamingService.cs | 12 +- .../Playback/Hls/AudioHlsService.cs | 3 +- .../Playback/Hls/BaseHlsService.cs | 6 +- .../Playback/Hls/VideoHlsService.cs | 4 +- .../Playback/Progressive/AudioService.cs | 4 +- .../BaseProgressiveStreamingService.cs | 4 +- .../Playback/Progressive/VideoService.cs | 4 +- .../UserLibrary/BaseItemsByNameService.cs | 8 +- MediaBrowser.Api/UserLibrary/GenresService.cs | 11 +- MediaBrowser.Api/UserLibrary/ItemsService.cs | 12 +- .../UserLibrary/PersonsService.cs | 7 +- .../UserLibrary/StudiosService.cs | 11 +- .../UserLibrary/UserLibraryService.cs | 41 ++--- MediaBrowser.Api/UserLibrary/YearsService.cs | 13 +- .../NetworkManagement/NetworkManager.cs | 32 ++-- .../ScheduledTasks/ScheduledTaskWorker.cs | 44 +++++- MediaBrowser.Controller/Entities/BaseItem.cs | 3 +- .../Entities/CollectionFolder.cs | 2 +- MediaBrowser.Controller/Entities/Folder.cs | 12 +- .../Entities/Movies/Movie.cs | 2 +- MediaBrowser.Controller/Entities/User.cs | 2 +- .../Entities/UserRootFolder.cs | 2 +- .../IO/DirectoryWatchers.cs | 19 ++- .../IO/FileSystemManager.cs | 6 +- MediaBrowser.Controller/Kernel.cs | 96 +----------- MediaBrowser.Controller/Library/DtoBuilder.cs | 34 ++-- .../Library/ILibraryManager.cs | 145 ++++++++++++++++++ .../MediaBrowser.Controller.csproj | 2 +- .../ScheduledTasks/PeopleValidationTask.cs | 14 +- .../ScheduledTasks/RefreshMediaLibraryTask.cs | 13 +- .../BdInfo}/BdInfoExaminer.cs | 5 +- .../Library/LibraryManager.cs | 114 ++++++++++++-- ...MediaBrowser.Server.Implementations.csproj | 9 ++ .../ScheduledTasks/Tasks/ChapterImagesTask.cs | 8 +- .../ScheduledTasks/Tasks/ImageCleanupTask.cs | 11 +- .../packages.config | 1 + .../ApplicationHost.cs | 26 ++-- .../LibraryExplorer.xaml.cs | 9 +- .../MainWindow.xaml.cs | 9 +- .../MediaBrowser.ServerApplication.csproj | 16 +- .../Html/scripts/site.js | 3 +- .../MediaBrowser.WebDashboard.csproj | 3 +- Nuget/MediaBrowser.ApiClient.nuspec | 2 +- Nuget/MediaBrowser.Common.Internal.nuspec | 4 +- Nuget/MediaBrowser.Common.nuspec | 2 +- Nuget/MediaBrowser.Server.Core.nuspec | 4 +- 52 files changed, 557 insertions(+), 337 deletions(-) create mode 100644 MediaBrowser.Controller/Library/ILibraryManager.cs rename {BDInfo => MediaBrowser.Server.Implementations/BdInfo}/BdInfoExaminer.cs (98%) rename {MediaBrowser.Controller => MediaBrowser.Server.Implementations}/Library/LibraryManager.cs (84%) diff --git a/BDInfo/BDInfo.csproj b/BDInfo/BDInfo.csproj index 234050ed30..a9ccada6e2 100644 --- a/BDInfo/BDInfo.csproj +++ b/BDInfo/BDInfo.csproj @@ -35,7 +35,6 @@ - diff --git a/MediaBrowser.Api/EnvironmentService.cs b/MediaBrowser.Api/EnvironmentService.cs index f3c5d70c04..56be18d866 100644 --- a/MediaBrowser.Api/EnvironmentService.cs +++ b/MediaBrowser.Api/EnvironmentService.cs @@ -97,18 +97,18 @@ namespace MediaBrowser.Api throw new ArgumentNullException("Path"); } - // Reject invalid input - if (!Path.IsPathRooted(path)) + if (path.StartsWith(NetworkPrefix, StringComparison.OrdinalIgnoreCase) && path.LastIndexOf('\\') == 1) { - throw new ArgumentException(string.Format("Invalid path: {0}", path)); + return ToOptimizedResult(GetNetworkShares(path).ToList()); } - if (path.StartsWith(NetworkPrefix, StringComparison.OrdinalIgnoreCase) && path.LastIndexOf('\\') == 1) + // Reject invalid input + if (!Path.IsPathRooted(path)) { - return GetNetworkShares(path).ToList(); + throw new ArgumentException(string.Format("Invalid path: {0}", path)); } - return GetFileSystemEntries(request).ToList(); + return ToOptimizedResult(GetFileSystemEntries(request).ToList()); } /// @@ -118,7 +118,9 @@ namespace MediaBrowser.Api /// System.Object. public object Get(GetDrives request) { - return GetDrives().ToList(); + var result = GetDrives().ToList(); + + return ToOptimizedResult(result); } /// @@ -128,7 +130,9 @@ namespace MediaBrowser.Api /// System.Object. public object Get(GetNetworkComputers request) { - return GetNetworkComputers().ToList(); + var result = GetNetworkComputers().ToList(); + + return ToOptimizedResult(result); } /// diff --git a/MediaBrowser.Api/Images/ImageService.cs b/MediaBrowser.Api/Images/ImageService.cs index 00e35428a4..ac9a220b63 100644 --- a/MediaBrowser.Api/Images/ImageService.cs +++ b/MediaBrowser.Api/Images/ImageService.cs @@ -141,13 +141,19 @@ namespace MediaBrowser.Api.Images /// private readonly IUserManager _userManager; + /// + /// The _library manager + /// + private readonly ILibraryManager _libraryManager; + /// /// Initializes a new instance of the class. /// /// The user manager. - public ImageService(IUserManager userManager) + public ImageService(IUserManager userManager, ILibraryManager libraryManager) { _userManager = userManager; + _libraryManager = libraryManager; } /// @@ -157,7 +163,7 @@ namespace MediaBrowser.Api.Images /// System.Object. public object Get(GetItemImage request) { - var item = DtoBuilder.GetItemByClientId(request.Id, _userManager); + var item = DtoBuilder.GetItemByClientId(request.Id, _userManager, _libraryManager); return GetImage(request, item); } @@ -181,9 +187,7 @@ namespace MediaBrowser.Api.Images /// System.Object. public object Get(GetYearImage request) { - var kernel = (Kernel)Kernel; - - var item = kernel.LibraryManager.GetYear(request.Year).Result; + var item = _libraryManager.GetYear(request.Year).Result; return GetImage(request, item); } @@ -195,9 +199,7 @@ namespace MediaBrowser.Api.Images /// System.Object. public object Get(GetStudioImage request) { - var kernel = (Kernel)Kernel; - - var item = kernel.LibraryManager.GetStudio(request.Name).Result; + var item = _libraryManager.GetStudio(request.Name).Result; return GetImage(request, item); } @@ -209,9 +211,7 @@ namespace MediaBrowser.Api.Images /// System.Object. public object Get(GetPersonImage request) { - var kernel = (Kernel)Kernel; - - var item = kernel.LibraryManager.GetPerson(request.Name).Result; + var item = _libraryManager.GetPerson(request.Name).Result; return GetImage(request, item); } @@ -223,9 +223,7 @@ namespace MediaBrowser.Api.Images /// System.Object. public object Get(GetGenreImage request) { - var kernel = (Kernel)Kernel; - - var item = kernel.LibraryManager.GetGenre(request.Name).Result; + var item = _libraryManager.GetGenre(request.Name).Result; return GetImage(request, item); } diff --git a/MediaBrowser.Api/Library/LibraryService.cs b/MediaBrowser.Api/Library/LibraryService.cs index adc267a00d..11d8777111 100644 --- a/MediaBrowser.Api/Library/LibraryService.cs +++ b/MediaBrowser.Api/Library/LibraryService.cs @@ -93,13 +93,14 @@ namespace MediaBrowser.Api.Library /// The _app host /// private readonly IApplicationHost _appHost; + private readonly ILibraryManager _libraryManager; /// /// Initializes a new instance of the class. /// /// The app host. /// appHost - public LibraryService(IApplicationHost appHost) + public LibraryService(IApplicationHost appHost, ILibraryManager libraryManager) { if (appHost == null) { @@ -107,6 +108,7 @@ namespace MediaBrowser.Api.Library } _appHost = appHost; + _libraryManager = libraryManager; } /// @@ -116,14 +118,12 @@ namespace MediaBrowser.Api.Library /// System.Object. public object Get(GetPerson request) { - var kernel = (Kernel)Kernel; - - var item = kernel.LibraryManager.GetPerson(request.Name).Result; + var item = _libraryManager.GetPerson(request.Name).Result; // Get everything var fields = Enum.GetNames(typeof(ItemFields)).Select(i => (ItemFields)Enum.Parse(typeof(ItemFields), i, true)); - - var result = new DtoBuilder(Logger).GetDtoBaseItem(item, fields.ToList()).Result; + + var result = new DtoBuilder(Logger).GetDtoBaseItem(item, fields.ToList(), _libraryManager).Result; return ToOptimizedResult(result); } @@ -135,14 +135,12 @@ namespace MediaBrowser.Api.Library /// System.Object. public object Get(GetGenre request) { - var kernel = (Kernel)Kernel; - - var item = kernel.LibraryManager.GetGenre(request.Name).Result; + var item = _libraryManager.GetGenre(request.Name).Result; // Get everything var fields = Enum.GetNames(typeof(ItemFields)).Select(i => (ItemFields)Enum.Parse(typeof(ItemFields), i, true)); - var result = new DtoBuilder(Logger).GetDtoBaseItem(item, fields.ToList()).Result; + var result = new DtoBuilder(Logger).GetDtoBaseItem(item, fields.ToList(), _libraryManager).Result; return ToOptimizedResult(result); } @@ -154,14 +152,12 @@ namespace MediaBrowser.Api.Library /// System.Object. public object Get(GetStudio request) { - var kernel = (Kernel)Kernel; - - var item = kernel.LibraryManager.GetStudio(request.Name).Result; + var item = _libraryManager.GetStudio(request.Name).Result; // Get everything var fields = Enum.GetNames(typeof(ItemFields)).Select(i => (ItemFields)Enum.Parse(typeof(ItemFields), i, true)); - var result = new DtoBuilder(Logger).GetDtoBaseItem(item, fields.ToList()).Result; + var result = new DtoBuilder(Logger).GetDtoBaseItem(item, fields.ToList(), _libraryManager).Result; return ToOptimizedResult(result); } @@ -173,14 +169,12 @@ namespace MediaBrowser.Api.Library /// System.Object. public object Get(GetYear request) { - var kernel = (Kernel)Kernel; - - var item = kernel.LibraryManager.GetYear(request.Year).Result; + var item = _libraryManager.GetYear(request.Year).Result; // Get everything var fields = Enum.GetNames(typeof(ItemFields)).Select(i => (ItemFields)Enum.Parse(typeof(ItemFields), i, true)); - var result = new DtoBuilder(Logger).GetDtoBaseItem(item, fields.ToList()).Result; + var result = new DtoBuilder(Logger).GetDtoBaseItem(item, fields.ToList(), _libraryManager).Result; return ToOptimizedResult(result); } @@ -192,9 +186,7 @@ namespace MediaBrowser.Api.Library /// System.Object. public object Get(GetPhyscialPaths request) { - var kernel = (Kernel)Kernel; - - var result = kernel.RootFolder.Children.SelectMany(c => c.ResolveArgs.PhysicalLocations).ToList(); + var result = _libraryManager.RootFolder.Children.SelectMany(c => c.ResolveArgs.PhysicalLocations).ToList(); return ToOptimizedResult(result); } @@ -206,8 +198,6 @@ namespace MediaBrowser.Api.Library /// System.Object. public object Get(GetItemTypes request) { - var kernel = (Kernel)Kernel; - var allTypes = _appHost.AllConcreteTypes.Where(t => t.IsSubclassOf(typeof(BaseItem))); if (request.HasInternetProvider) diff --git a/MediaBrowser.Api/Library/LibraryStructureService.cs b/MediaBrowser.Api/Library/LibraryStructureService.cs index ef3b404780..df8b2907d8 100644 --- a/MediaBrowser.Api/Library/LibraryStructureService.cs +++ b/MediaBrowser.Api/Library/LibraryStructureService.cs @@ -141,13 +141,18 @@ namespace MediaBrowser.Api.Library /// private readonly IUserManager _userManager; + /// + /// The _library manager + /// + private readonly ILibraryManager _libraryManager; + /// /// Initializes a new instance of the class. /// /// The app paths. /// The user manager. /// appHost - public LibraryStructureService(IServerApplicationPaths appPaths, IUserManager userManager) + public LibraryStructureService(IServerApplicationPaths appPaths, IUserManager userManager, ILibraryManager libraryManager) { if (appPaths == null) { @@ -156,6 +161,7 @@ namespace MediaBrowser.Api.Library _userManager = userManager; _appPaths = appPaths; + _libraryManager = libraryManager; } /// @@ -165,11 +171,9 @@ namespace MediaBrowser.Api.Library /// System.Object. public object Get(GetVirtualFolders request) { - var kernel = (Kernel)Kernel; - if (string.IsNullOrEmpty(request.UserId)) { - var result = kernel.LibraryManager.GetDefaultVirtualFolders().ToList(); + var result = _libraryManager.GetDefaultVirtualFolders().ToList(); return ToOptimizedResult(result); } @@ -177,7 +181,7 @@ namespace MediaBrowser.Api.Library { var user = _userManager.GetUserById(new Guid(request.UserId)); - var result = kernel.LibraryManager.GetVirtualFolders(user).ToList(); + var result = _libraryManager.GetVirtualFolders(user).ToList(); return ToOptimizedResult(result); } diff --git a/MediaBrowser.Api/MediaBrowser.Api.csproj b/MediaBrowser.Api/MediaBrowser.Api.csproj index bebb4c94ab..cf2a556955 100644 --- a/MediaBrowser.Api/MediaBrowser.Api.csproj +++ b/MediaBrowser.Api/MediaBrowser.Api.csproj @@ -140,7 +140,8 @@ - xcopy "$(TargetPath)" "$(SolutionDir)\MediaBrowser.ServerApplication\CorePlugins\" /y + +