mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-07-03 04:42:52 +01:00
remove and/or delay unnecessary startup work
This commit is contained in:
@@ -668,7 +668,7 @@ namespace MediaBrowser.Controller.Entities
|
||||
return LibraryManager.ResolvePaths<Video>(files, null).Select(video =>
|
||||
{
|
||||
// Try to retrieve it from the db. If we don't find it, use the resolved version
|
||||
var dbItem = Kernel.Instance.ItemRepository.RetrieveItem(video.Id) as Video;
|
||||
var dbItem = LibraryManager.RetrieveItem(video.Id) as Video;
|
||||
|
||||
if (dbItem != null)
|
||||
{
|
||||
@@ -721,7 +721,7 @@ namespace MediaBrowser.Controller.Entities
|
||||
{
|
||||
cancellationToken.ThrowIfCancellationRequested();
|
||||
|
||||
await Kernel.Instance.ItemRepository.SaveItem(this, cancellationToken).ConfigureAwait(false);
|
||||
await LibraryManager.SaveItem(this, cancellationToken).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
return changed;
|
||||
@@ -868,7 +868,7 @@ namespace MediaBrowser.Controller.Entities
|
||||
}
|
||||
|
||||
//not found - load from repo
|
||||
return Kernel.Instance.ItemRepository.RetrieveItem(id);
|
||||
return LibraryManager.RetrieveItem(id);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -602,14 +602,14 @@ namespace MediaBrowser.Controller.Entities
|
||||
_children.Add(item);
|
||||
}
|
||||
|
||||
saveTasks.Add(Kernel.Instance.ItemRepository.SaveItem(item, CancellationToken.None));
|
||||
saveTasks.Add(LibraryManager.SaveItem(item, CancellationToken.None));
|
||||
}
|
||||
|
||||
await Task.WhenAll(saveTasks).ConfigureAwait(false);
|
||||
|
||||
//and save children in repo...
|
||||
Logger.Debug("*** Saving " + newChildren.Count + " children for " + Name);
|
||||
await Kernel.Instance.ItemRepository.SaveChildren(Id, newChildren, CancellationToken.None).ConfigureAwait(false);
|
||||
await LibraryManager.SaveChildren(Id, newChildren, CancellationToken.None).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
if (changedArgs.HasChange)
|
||||
@@ -726,7 +726,7 @@ namespace MediaBrowser.Controller.Entities
|
||||
/// <returns>IEnumerable{BaseItem}.</returns>
|
||||
protected virtual IEnumerable<BaseItem> GetCachedChildren()
|
||||
{
|
||||
return Kernel.Instance.ItemRepository.RetrieveChildren(this).Select(i => i is IByReferenceItem ? LibraryManager.GetOrAddByReferenceItem(i) : i);
|
||||
return LibraryManager.RetrieveChildren(this).Select(i => i is IByReferenceItem ? LibraryManager.GetOrAddByReferenceItem(i) : i);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -161,7 +161,7 @@ namespace MediaBrowser.Controller.Entities.Movies
|
||||
return LibraryManager.ResolvePaths<Video>(files, null).Select(video =>
|
||||
{
|
||||
// Try to retrieve it from the db. If we don't find it, use the resolved version
|
||||
var dbItem = Kernel.Instance.ItemRepository.RetrieveItem(video.Id) as Video;
|
||||
var dbItem = LibraryManager.RetrieveItem(video.Id) as Video;
|
||||
|
||||
if (dbItem != null)
|
||||
{
|
||||
|
||||
@@ -2,13 +2,9 @@
|
||||
using MediaBrowser.Controller.Drawing;
|
||||
using MediaBrowser.Controller.Localization;
|
||||
using MediaBrowser.Controller.MediaInfo;
|
||||
using MediaBrowser.Controller.Persistence;
|
||||
using MediaBrowser.Controller.Providers;
|
||||
using MediaBrowser.Controller.Weather;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace MediaBrowser.Controller
|
||||
{
|
||||
@@ -76,42 +72,6 @@ namespace MediaBrowser.Controller
|
||||
/// <value>The image enhancers.</value>
|
||||
public IEnumerable<IImageEnhancer> ImageEnhancers { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets the list of available user repositories
|
||||
/// </summary>
|
||||
/// <value>The user repositories.</value>
|
||||
public IEnumerable<IUserRepository> UserRepositories { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets the active user repository
|
||||
/// </summary>
|
||||
/// <value>The user repository.</value>
|
||||
public IUserRepository UserRepository { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets the list of available item repositories
|
||||
/// </summary>
|
||||
/// <value>The item repositories.</value>
|
||||
public IEnumerable<IItemRepository> ItemRepositories { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets the active item repository
|
||||
/// </summary>
|
||||
/// <value>The item repository.</value>
|
||||
public IItemRepository ItemRepository { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets the list of available item repositories
|
||||
/// </summary>
|
||||
/// <value>The user data repositories.</value>
|
||||
public IEnumerable<IUserDataRepository> UserDataRepositories { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets the active user data repository
|
||||
/// </summary>
|
||||
/// <value>The user data repository.</value>
|
||||
public IUserDataRepository UserDataRepository { get; set; }
|
||||
|
||||
private readonly IServerConfigurationManager _configurationManager;
|
||||
|
||||
/// <summary>
|
||||
@@ -124,42 +84,5 @@ namespace MediaBrowser.Controller
|
||||
|
||||
_configurationManager = configurationManager;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Called when [composable parts loaded].
|
||||
/// </summary>
|
||||
/// <returns>Task.</returns>
|
||||
public Task LoadRepositories(IServerConfigurationManager configurationManager)
|
||||
{
|
||||
// Get the current item repository
|
||||
ItemRepository = GetRepository(ItemRepositories, configurationManager.Configuration.ItemRepository);
|
||||
var itemRepoTask = ItemRepository.Initialize();
|
||||
|
||||
// Get the current user repository
|
||||
UserRepository = GetRepository(UserRepositories, configurationManager.Configuration.UserRepository);
|
||||
var userRepoTask = UserRepository.Initialize();
|
||||
|
||||
// Get the current item repository
|
||||
UserDataRepository = GetRepository(UserDataRepositories, configurationManager.Configuration.UserDataRepository);
|
||||
var userDataRepoTask = UserDataRepository.Initialize();
|
||||
|
||||
return Task.WhenAll(itemRepoTask, userRepoTask, userDataRepoTask);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets a repository by name from a list, and returns the default if not found
|
||||
/// </summary>
|
||||
/// <typeparam name="T"></typeparam>
|
||||
/// <param name="repositories">The repositories.</param>
|
||||
/// <param name="name">The name.</param>
|
||||
/// <returns>``0.</returns>
|
||||
private T GetRepository<T>(IEnumerable<T> repositories, string name)
|
||||
where T : class, IRepository
|
||||
{
|
||||
var enumerable = repositories as T[] ?? repositories.ToArray();
|
||||
|
||||
return enumerable.FirstOrDefault(r => string.Equals(r.Name, name, StringComparison.OrdinalIgnoreCase)) ??
|
||||
enumerable.FirstOrDefault();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using MediaBrowser.Controller.Entities;
|
||||
using MediaBrowser.Controller.IO;
|
||||
using MediaBrowser.Controller.Persistence;
|
||||
using MediaBrowser.Controller.Resolvers;
|
||||
using MediaBrowser.Controller.Sorting;
|
||||
using MediaBrowser.Model.Entities;
|
||||
@@ -143,8 +144,11 @@ namespace MediaBrowser.Controller.Library
|
||||
/// <param name="resolvers">The resolvers.</param>
|
||||
/// <param name="introProviders">The intro providers.</param>
|
||||
/// <param name="itemComparers">The item comparers.</param>
|
||||
void AddParts(IEnumerable<IResolverIgnoreRule> rules, IEnumerable<IVirtualFolderCreator> pluginFolders,
|
||||
IEnumerable<IItemResolver> resolvers, IEnumerable<IIntroProvider> introProviders, IEnumerable<IBaseItemComparer> itemComparers);
|
||||
void AddParts(IEnumerable<IResolverIgnoreRule> rules,
|
||||
IEnumerable<IVirtualFolderCreator> pluginFolders,
|
||||
IEnumerable<IItemResolver> resolvers,
|
||||
IEnumerable<IIntroProvider> introProviders,
|
||||
IEnumerable<IBaseItemComparer> itemComparers);
|
||||
|
||||
/// <summary>
|
||||
/// Sorts the specified items.
|
||||
@@ -170,5 +174,36 @@ namespace MediaBrowser.Controller.Library
|
||||
/// <param name="userRootPath">The user root path.</param>
|
||||
/// <returns>UserRootFolder.</returns>
|
||||
UserRootFolder GetUserRootFolder(string userRootPath);
|
||||
|
||||
/// <summary>
|
||||
/// Saves the item.
|
||||
/// </summary>
|
||||
/// <param name="item">The item.</param>
|
||||
/// <param name="cancellationToken">The cancellation token.</param>
|
||||
/// <returns>Task.</returns>
|
||||
Task SaveItem(BaseItem item, CancellationToken cancellationToken);
|
||||
|
||||
/// <summary>
|
||||
/// Retrieves the item.
|
||||
/// </summary>
|
||||
/// <param name="id">The id.</param>
|
||||
/// <returns>Task{BaseItem}.</returns>
|
||||
BaseItem RetrieveItem(Guid id);
|
||||
|
||||
/// <summary>
|
||||
/// Saves the children.
|
||||
/// </summary>
|
||||
/// <param name="id">The id.</param>
|
||||
/// <param name="children">The children.</param>
|
||||
/// <param name="cancellationToken">The cancellation token.</param>
|
||||
/// <returns>Task.</returns>
|
||||
Task SaveChildren(Guid id, IEnumerable<BaseItem> children, CancellationToken cancellationToken);
|
||||
|
||||
/// <summary>
|
||||
/// Retrieves the children.
|
||||
/// </summary>
|
||||
/// <param name="parent">The parent.</param>
|
||||
/// <returns>IEnumerable{BaseItem}.</returns>
|
||||
IEnumerable<BaseItem> RetrieveChildren(Folder parent);
|
||||
}
|
||||
}
|
||||
@@ -58,7 +58,6 @@
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.Net" />
|
||||
<Reference Include="System.Runtime.Serialization" />
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
using MediaBrowser.Common.IO;
|
||||
using MediaBrowser.Common.MediaInfo;
|
||||
using MediaBrowser.Controller.Entities;
|
||||
using MediaBrowser.Controller.Library;
|
||||
using MediaBrowser.Controller.Providers.MediaInfo;
|
||||
using MediaBrowser.Model.Entities;
|
||||
using System;
|
||||
@@ -34,31 +35,23 @@ namespace MediaBrowser.Controller.MediaInfo
|
||||
/// <value>The subtitle cache.</value>
|
||||
internal FileSystemRepository SubtitleCache { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The _logger
|
||||
/// </summary>
|
||||
private readonly Kernel _kernel;
|
||||
|
||||
private readonly ILibraryManager _libraryManager;
|
||||
|
||||
private readonly IServerApplicationPaths _appPaths;
|
||||
private readonly IMediaEncoder _encoder;
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="FFMpegManager" /> class.
|
||||
/// </summary>
|
||||
/// <param name="kernel">The kernel.</param>
|
||||
/// <param name="appPaths">The app paths.</param>
|
||||
/// <param name="encoder">The encoder.</param>
|
||||
/// <param name="libraryManager">The library manager.</param>
|
||||
/// <exception cref="System.ArgumentNullException">zipClient</exception>
|
||||
public FFMpegManager(Kernel kernel, IServerApplicationPaths appPaths, IMediaEncoder encoder)
|
||||
public FFMpegManager(IServerApplicationPaths appPaths, IMediaEncoder encoder, ILibraryManager libraryManager)
|
||||
{
|
||||
if (kernel == null)
|
||||
{
|
||||
throw new ArgumentNullException("kernel");
|
||||
}
|
||||
|
||||
_kernel = kernel;
|
||||
_appPaths = appPaths;
|
||||
_encoder = encoder;
|
||||
_libraryManager = libraryManager;
|
||||
|
||||
VideoImageCache = new FileSystemRepository(VideoImagesDataPath);
|
||||
AudioImageCache = new FileSystemRepository(AudioImagesDataPath);
|
||||
@@ -216,7 +209,7 @@ namespace MediaBrowser.Controller.MediaInfo
|
||||
|
||||
if (saveItem && changesMade)
|
||||
{
|
||||
await _kernel.ItemRepository.SaveItem(video, CancellationToken.None).ConfigureAwait(false);
|
||||
await _libraryManager.SaveItem(video, CancellationToken.None).ConfigureAwait(false);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user