mirror of
https://github.com/jellyfin/jellyfin.git
synced 2024-09-06 13:57:14 -04:00
Register IProviderManager correctly
This commit is contained in:
parent
75b05ca1e6
commit
51b9a6e94b
@ -265,12 +265,6 @@ namespace Emby.Server.Implementations
|
|||||||
/// <value>The directory watchers.</value>
|
/// <value>The directory watchers.</value>
|
||||||
private ILibraryMonitor LibraryMonitor { get; set; }
|
private ILibraryMonitor LibraryMonitor { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Gets or sets the provider manager.
|
|
||||||
/// </summary>
|
|
||||||
/// <value>The provider manager.</value>
|
|
||||||
private IProviderManager ProviderManager { get; set; }
|
|
||||||
|
|
||||||
public IImageProcessor ImageProcessor { get; set; }
|
public IImageProcessor ImageProcessor { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -726,7 +720,7 @@ namespace Emby.Server.Implementations
|
|||||||
StartupOptions.FFmpegPath);
|
StartupOptions.FFmpegPath);
|
||||||
serviceCollection.AddSingleton(MediaEncoder);
|
serviceCollection.AddSingleton(MediaEncoder);
|
||||||
|
|
||||||
LibraryManager = new LibraryManager(this, LoggerFactory, TaskManager, UserManager, ServerConfigurationManager, UserDataManager, () => LibraryMonitor, FileSystemManager, () => ProviderManager, Resolve<IUserViewManager>, MediaEncoder);
|
LibraryManager = new LibraryManager(this, LoggerFactory, TaskManager, UserManager, ServerConfigurationManager, UserDataManager, () => LibraryMonitor, FileSystemManager, Resolve<IProviderManager>, Resolve<IUserViewManager>, MediaEncoder);
|
||||||
serviceCollection.AddSingleton(LibraryManager);
|
serviceCollection.AddSingleton(LibraryManager);
|
||||||
|
|
||||||
var musicManager = new MusicManager(LibraryManager);
|
var musicManager = new MusicManager(LibraryManager);
|
||||||
@ -759,8 +753,7 @@ namespace Emby.Server.Implementations
|
|||||||
SubtitleManager = new SubtitleManager(LoggerFactory, FileSystemManager, LibraryMonitor, MediaSourceManager, LocalizationManager);
|
SubtitleManager = new SubtitleManager(LoggerFactory, FileSystemManager, LibraryMonitor, MediaSourceManager, LocalizationManager);
|
||||||
serviceCollection.AddSingleton(SubtitleManager);
|
serviceCollection.AddSingleton(SubtitleManager);
|
||||||
|
|
||||||
ProviderManager = new ProviderManager(HttpClient, SubtitleManager, ServerConfigurationManager, LibraryMonitor, LoggerFactory, FileSystemManager, ApplicationPaths, () => LibraryManager, JsonSerializer);
|
serviceCollection.AddSingleton<IProviderManager, ProviderManager>();
|
||||||
serviceCollection.AddSingleton(ProviderManager);
|
|
||||||
|
|
||||||
// TODO: Refactor to eliminate circular dependency here so Lazy<> isn't required
|
// TODO: Refactor to eliminate circular dependency here so Lazy<> isn't required
|
||||||
serviceCollection.AddTransient(provider => new Lazy<ILiveTvManager>(provider.GetRequiredService<ILiveTvManager>));
|
serviceCollection.AddTransient(provider => new Lazy<ILiveTvManager>(provider.GetRequiredService<ILiveTvManager>));
|
||||||
@ -931,7 +924,7 @@ namespace Emby.Server.Implementations
|
|||||||
BaseItem.Logger = LoggerFactory.CreateLogger("BaseItem");
|
BaseItem.Logger = LoggerFactory.CreateLogger("BaseItem");
|
||||||
BaseItem.ConfigurationManager = ServerConfigurationManager;
|
BaseItem.ConfigurationManager = ServerConfigurationManager;
|
||||||
BaseItem.LibraryManager = LibraryManager;
|
BaseItem.LibraryManager = LibraryManager;
|
||||||
BaseItem.ProviderManager = ProviderManager;
|
BaseItem.ProviderManager = Resolve<IProviderManager>();
|
||||||
BaseItem.LocalizationManager = LocalizationManager;
|
BaseItem.LocalizationManager = LocalizationManager;
|
||||||
BaseItem.ItemRepository = ItemRepository;
|
BaseItem.ItemRepository = ItemRepository;
|
||||||
User.UserManager = UserManager;
|
User.UserManager = UserManager;
|
||||||
@ -1013,7 +1006,7 @@ namespace Emby.Server.Implementations
|
|||||||
GetExports<IBaseItemComparer>(),
|
GetExports<IBaseItemComparer>(),
|
||||||
GetExports<ILibraryPostScanTask>());
|
GetExports<ILibraryPostScanTask>());
|
||||||
|
|
||||||
ProviderManager.AddParts(
|
Resolve<IProviderManager>().AddParts(
|
||||||
GetExports<IImageProvider>(),
|
GetExports<IImageProvider>(),
|
||||||
GetExports<IMetadataService>(),
|
GetExports<IMetadataService>(),
|
||||||
GetExports<IMetadataProvider>(),
|
GetExports<IMetadataProvider>(),
|
||||||
|
@ -39,9 +39,9 @@ namespace Emby.Server.Implementations.Dto
|
|||||||
|
|
||||||
private readonly IApplicationHost _appHost;
|
private readonly IApplicationHost _appHost;
|
||||||
private readonly IMediaSourceManager _mediaSourceManager;
|
private readonly IMediaSourceManager _mediaSourceManager;
|
||||||
private readonly Lazy<ILiveTvManager> _livetvManagerLazy;
|
private readonly Lazy<ILiveTvManager> _livetvManagerFactory;
|
||||||
|
|
||||||
private ILiveTvManager LivetvManager => _livetvManagerLazy.Value;
|
private ILiveTvManager LivetvManager => _livetvManagerFactory.Value;
|
||||||
|
|
||||||
public DtoService(
|
public DtoService(
|
||||||
ILogger<DtoService> logger,
|
ILogger<DtoService> logger,
|
||||||
@ -52,7 +52,7 @@ namespace Emby.Server.Implementations.Dto
|
|||||||
IProviderManager providerManager,
|
IProviderManager providerManager,
|
||||||
IApplicationHost appHost,
|
IApplicationHost appHost,
|
||||||
IMediaSourceManager mediaSourceManager,
|
IMediaSourceManager mediaSourceManager,
|
||||||
Lazy<ILiveTvManager> livetvManager)
|
Lazy<ILiveTvManager> livetvManagerFactory)
|
||||||
{
|
{
|
||||||
_logger = logger;
|
_logger = logger;
|
||||||
_libraryManager = libraryManager;
|
_libraryManager = libraryManager;
|
||||||
@ -62,7 +62,7 @@ namespace Emby.Server.Implementations.Dto
|
|||||||
_providerManager = providerManager;
|
_providerManager = providerManager;
|
||||||
_appHost = appHost;
|
_appHost = appHost;
|
||||||
_mediaSourceManager = mediaSourceManager;
|
_mediaSourceManager = mediaSourceManager;
|
||||||
_livetvManagerLazy = livetvManager;
|
_livetvManagerFactory = livetvManagerFactory;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -36,60 +36,51 @@ namespace MediaBrowser.Providers.Manager
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public class ProviderManager : IProviderManager, IDisposable
|
public class ProviderManager : IProviderManager, IDisposable
|
||||||
{
|
{
|
||||||
/// <summary>
|
|
||||||
/// The _logger
|
|
||||||
/// </summary>
|
|
||||||
private readonly ILogger _logger;
|
private readonly ILogger _logger;
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// The _HTTP client
|
|
||||||
/// </summary>
|
|
||||||
private readonly IHttpClient _httpClient;
|
private readonly IHttpClient _httpClient;
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// The _directory watchers
|
|
||||||
/// </summary>
|
|
||||||
private readonly ILibraryMonitor _libraryMonitor;
|
private readonly ILibraryMonitor _libraryMonitor;
|
||||||
|
private readonly IFileSystem _fileSystem;
|
||||||
/// <summary>
|
private readonly IServerApplicationPaths _appPaths;
|
||||||
/// Gets or sets the configuration manager.
|
private readonly IJsonSerializer _json;
|
||||||
/// </summary>
|
private readonly ILibraryManager _libraryManager;
|
||||||
/// <value>The configuration manager.</value>
|
private readonly ISubtitleManager _subtitleManager;
|
||||||
private IServerConfigurationManager ConfigurationManager { get; set; }
|
private readonly IServerConfigurationManager _configurationManager;
|
||||||
|
|
||||||
private IImageProvider[] ImageProviders { get; set; }
|
private IImageProvider[] ImageProviders { get; set; }
|
||||||
|
|
||||||
private readonly IFileSystem _fileSystem;
|
|
||||||
|
|
||||||
private IMetadataService[] _metadataServices = { };
|
private IMetadataService[] _metadataServices = { };
|
||||||
private IMetadataProvider[] _metadataProviders = { };
|
private IMetadataProvider[] _metadataProviders = { };
|
||||||
private IEnumerable<IMetadataSaver> _savers;
|
private IEnumerable<IMetadataSaver> _savers;
|
||||||
private readonly IServerApplicationPaths _appPaths;
|
|
||||||
private readonly IJsonSerializer _json;
|
|
||||||
|
|
||||||
private IExternalId[] _externalIds;
|
private IExternalId[] _externalIds;
|
||||||
|
|
||||||
private readonly Func<ILibraryManager> _libraryManagerFactory;
|
|
||||||
private CancellationTokenSource _disposeCancellationTokenSource = new CancellationTokenSource();
|
private CancellationTokenSource _disposeCancellationTokenSource = new CancellationTokenSource();
|
||||||
|
|
||||||
public event EventHandler<GenericEventArgs<BaseItem>> RefreshStarted;
|
public event EventHandler<GenericEventArgs<BaseItem>> RefreshStarted;
|
||||||
public event EventHandler<GenericEventArgs<BaseItem>> RefreshCompleted;
|
public event EventHandler<GenericEventArgs<BaseItem>> RefreshCompleted;
|
||||||
public event EventHandler<GenericEventArgs<Tuple<BaseItem, double>>> RefreshProgress;
|
public event EventHandler<GenericEventArgs<Tuple<BaseItem, double>>> RefreshProgress;
|
||||||
|
|
||||||
private ISubtitleManager _subtitleManager;
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Initializes a new instance of the <see cref="ProviderManager" /> class.
|
/// Initializes a new instance of the <see cref="ProviderManager" /> class.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public ProviderManager(IHttpClient httpClient, ISubtitleManager subtitleManager, IServerConfigurationManager configurationManager, ILibraryMonitor libraryMonitor, ILoggerFactory loggerFactory, IFileSystem fileSystem, IServerApplicationPaths appPaths, Func<ILibraryManager> libraryManagerFactory, IJsonSerializer json)
|
public ProviderManager(
|
||||||
|
IHttpClient httpClient,
|
||||||
|
ISubtitleManager subtitleManager,
|
||||||
|
IServerConfigurationManager configurationManager,
|
||||||
|
ILibraryMonitor libraryMonitor,
|
||||||
|
ILogger<ProviderManager> logger,
|
||||||
|
IFileSystem fileSystem,
|
||||||
|
IServerApplicationPaths appPaths,
|
||||||
|
ILibraryManager libraryManager,
|
||||||
|
IJsonSerializer json)
|
||||||
{
|
{
|
||||||
_logger = loggerFactory.CreateLogger("ProviderManager");
|
_logger = logger;
|
||||||
_httpClient = httpClient;
|
_httpClient = httpClient;
|
||||||
ConfigurationManager = configurationManager;
|
_configurationManager = configurationManager;
|
||||||
_libraryMonitor = libraryMonitor;
|
_libraryMonitor = libraryMonitor;
|
||||||
_fileSystem = fileSystem;
|
_fileSystem = fileSystem;
|
||||||
_appPaths = appPaths;
|
_appPaths = appPaths;
|
||||||
_libraryManagerFactory = libraryManagerFactory;
|
_libraryManager = libraryManager;
|
||||||
_json = json;
|
_json = json;
|
||||||
_subtitleManager = subtitleManager;
|
_subtitleManager = subtitleManager;
|
||||||
}
|
}
|
||||||
@ -176,7 +167,7 @@ namespace MediaBrowser.Providers.Manager
|
|||||||
|
|
||||||
public Task SaveImage(BaseItem item, Stream source, string mimeType, ImageType type, int? imageIndex, CancellationToken cancellationToken)
|
public Task SaveImage(BaseItem item, Stream source, string mimeType, ImageType type, int? imageIndex, CancellationToken cancellationToken)
|
||||||
{
|
{
|
||||||
return new ImageSaver(ConfigurationManager, _libraryMonitor, _fileSystem, _logger).SaveImage(item, source, mimeType, type, imageIndex, cancellationToken);
|
return new ImageSaver(_configurationManager, _libraryMonitor, _fileSystem, _logger).SaveImage(item, source, mimeType, type, imageIndex, cancellationToken);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Task SaveImage(BaseItem item, string source, string mimeType, ImageType type, int? imageIndex, bool? saveLocallyWithMedia, CancellationToken cancellationToken)
|
public Task SaveImage(BaseItem item, string source, string mimeType, ImageType type, int? imageIndex, bool? saveLocallyWithMedia, CancellationToken cancellationToken)
|
||||||
@ -188,7 +179,7 @@ namespace MediaBrowser.Providers.Manager
|
|||||||
|
|
||||||
var fileStream = new FileStream(source, FileMode.Open, FileAccess.Read, FileShare.ReadWrite, IODefaults.FileStreamBufferSize, true);
|
var fileStream = new FileStream(source, FileMode.Open, FileAccess.Read, FileShare.ReadWrite, IODefaults.FileStreamBufferSize, true);
|
||||||
|
|
||||||
return new ImageSaver(ConfigurationManager, _libraryMonitor, _fileSystem, _logger).SaveImage(item, fileStream, mimeType, type, imageIndex, saveLocallyWithMedia, cancellationToken);
|
return new ImageSaver(_configurationManager, _libraryMonitor, _fileSystem, _logger).SaveImage(item, fileStream, mimeType, type, imageIndex, saveLocallyWithMedia, cancellationToken);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<IEnumerable<RemoteImageInfo>> GetAvailableRemoteImages(BaseItem item, RemoteImageQuery query, CancellationToken cancellationToken)
|
public async Task<IEnumerable<RemoteImageInfo>> GetAvailableRemoteImages(BaseItem item, RemoteImageQuery query, CancellationToken cancellationToken)
|
||||||
@ -273,7 +264,7 @@ namespace MediaBrowser.Providers.Manager
|
|||||||
|
|
||||||
public IEnumerable<IImageProvider> GetImageProviders(BaseItem item, ImageRefreshOptions refreshOptions)
|
public IEnumerable<IImageProvider> GetImageProviders(BaseItem item, ImageRefreshOptions refreshOptions)
|
||||||
{
|
{
|
||||||
return GetImageProviders(item, _libraryManagerFactory().GetLibraryOptions(item), GetMetadataOptions(item), refreshOptions, false);
|
return GetImageProviders(item, _libraryManager.GetLibraryOptions(item), GetMetadataOptions(item), refreshOptions, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
private IEnumerable<IImageProvider> GetImageProviders(BaseItem item, LibraryOptions libraryOptions, MetadataOptions options, ImageRefreshOptions refreshOptions, bool includeDisabled)
|
private IEnumerable<IImageProvider> GetImageProviders(BaseItem item, LibraryOptions libraryOptions, MetadataOptions options, ImageRefreshOptions refreshOptions, bool includeDisabled)
|
||||||
@ -328,7 +319,7 @@ namespace MediaBrowser.Providers.Manager
|
|||||||
private IEnumerable<IRemoteImageProvider> GetRemoteImageProviders(BaseItem item, bool includeDisabled)
|
private IEnumerable<IRemoteImageProvider> GetRemoteImageProviders(BaseItem item, bool includeDisabled)
|
||||||
{
|
{
|
||||||
var options = GetMetadataOptions(item);
|
var options = GetMetadataOptions(item);
|
||||||
var libraryOptions = _libraryManagerFactory().GetLibraryOptions(item);
|
var libraryOptions = _libraryManager.GetLibraryOptions(item);
|
||||||
|
|
||||||
return GetImageProviders(item, libraryOptions, options,
|
return GetImageProviders(item, libraryOptions, options,
|
||||||
new ImageRefreshOptions(
|
new ImageRefreshOptions(
|
||||||
@ -593,7 +584,7 @@ namespace MediaBrowser.Providers.Manager
|
|||||||
{
|
{
|
||||||
var type = item.GetType().Name;
|
var type = item.GetType().Name;
|
||||||
|
|
||||||
return ConfigurationManager.Configuration.MetadataOptions
|
return _configurationManager.Configuration.MetadataOptions
|
||||||
.FirstOrDefault(i => string.Equals(i.ItemType, type, StringComparison.OrdinalIgnoreCase)) ??
|
.FirstOrDefault(i => string.Equals(i.ItemType, type, StringComparison.OrdinalIgnoreCase)) ??
|
||||||
new MetadataOptions();
|
new MetadataOptions();
|
||||||
}
|
}
|
||||||
@ -623,7 +614,7 @@ namespace MediaBrowser.Providers.Manager
|
|||||||
/// <returns>Task.</returns>
|
/// <returns>Task.</returns>
|
||||||
private void SaveMetadata(BaseItem item, ItemUpdateType updateType, IEnumerable<IMetadataSaver> savers)
|
private void SaveMetadata(BaseItem item, ItemUpdateType updateType, IEnumerable<IMetadataSaver> savers)
|
||||||
{
|
{
|
||||||
var libraryOptions = _libraryManagerFactory().GetLibraryOptions(item);
|
var libraryOptions = _libraryManager.GetLibraryOptions(item);
|
||||||
|
|
||||||
foreach (var saver in savers.Where(i => IsSaverEnabledForItem(i, item, libraryOptions, updateType, false)))
|
foreach (var saver in savers.Where(i => IsSaverEnabledForItem(i, item, libraryOptions, updateType, false)))
|
||||||
{
|
{
|
||||||
@ -743,7 +734,7 @@ namespace MediaBrowser.Providers.Manager
|
|||||||
|
|
||||||
if (!searchInfo.ItemId.Equals(Guid.Empty))
|
if (!searchInfo.ItemId.Equals(Guid.Empty))
|
||||||
{
|
{
|
||||||
referenceItem = _libraryManagerFactory().GetItemById(searchInfo.ItemId);
|
referenceItem = _libraryManager.GetItemById(searchInfo.ItemId);
|
||||||
}
|
}
|
||||||
|
|
||||||
return GetRemoteSearchResults<TItemType, TLookupType>(searchInfo, referenceItem, cancellationToken);
|
return GetRemoteSearchResults<TItemType, TLookupType>(searchInfo, referenceItem, cancellationToken);
|
||||||
@ -771,7 +762,7 @@ namespace MediaBrowser.Providers.Manager
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
libraryOptions = _libraryManagerFactory().GetLibraryOptions(referenceItem);
|
libraryOptions = _libraryManager.GetLibraryOptions(referenceItem);
|
||||||
}
|
}
|
||||||
|
|
||||||
var options = GetMetadataOptions(referenceItem);
|
var options = GetMetadataOptions(referenceItem);
|
||||||
@ -786,11 +777,11 @@ namespace MediaBrowser.Providers.Manager
|
|||||||
|
|
||||||
if (string.IsNullOrWhiteSpace(searchInfo.SearchInfo.MetadataLanguage))
|
if (string.IsNullOrWhiteSpace(searchInfo.SearchInfo.MetadataLanguage))
|
||||||
{
|
{
|
||||||
searchInfo.SearchInfo.MetadataLanguage = ConfigurationManager.Configuration.PreferredMetadataLanguage;
|
searchInfo.SearchInfo.MetadataLanguage = _configurationManager.Configuration.PreferredMetadataLanguage;
|
||||||
}
|
}
|
||||||
if (string.IsNullOrWhiteSpace(searchInfo.SearchInfo.MetadataCountryCode))
|
if (string.IsNullOrWhiteSpace(searchInfo.SearchInfo.MetadataCountryCode))
|
||||||
{
|
{
|
||||||
searchInfo.SearchInfo.MetadataCountryCode = ConfigurationManager.Configuration.MetadataCountryCode;
|
searchInfo.SearchInfo.MetadataCountryCode = _configurationManager.Configuration.MetadataCountryCode;
|
||||||
}
|
}
|
||||||
|
|
||||||
var resultList = new List<RemoteSearchResult>();
|
var resultList = new List<RemoteSearchResult>();
|
||||||
@ -1010,7 +1001,7 @@ namespace MediaBrowser.Providers.Manager
|
|||||||
|
|
||||||
private async Task StartProcessingRefreshQueue()
|
private async Task StartProcessingRefreshQueue()
|
||||||
{
|
{
|
||||||
var libraryManager = _libraryManagerFactory();
|
var libraryManager = _libraryManager;
|
||||||
|
|
||||||
if (_disposed)
|
if (_disposed)
|
||||||
{
|
{
|
||||||
@ -1088,7 +1079,7 @@ namespace MediaBrowser.Providers.Manager
|
|||||||
|
|
||||||
private async Task RefreshArtist(MusicArtist item, MetadataRefreshOptions options, CancellationToken cancellationToken)
|
private async Task RefreshArtist(MusicArtist item, MetadataRefreshOptions options, CancellationToken cancellationToken)
|
||||||
{
|
{
|
||||||
var albums = _libraryManagerFactory()
|
var albums = _libraryManager
|
||||||
.GetItemList(new InternalItemsQuery
|
.GetItemList(new InternalItemsQuery
|
||||||
{
|
{
|
||||||
IncludeItemTypes = new[] { nameof(MusicAlbum) },
|
IncludeItemTypes = new[] { nameof(MusicAlbum) },
|
||||||
|
Loading…
Reference in New Issue
Block a user