mirror of
https://github.com/jellyfin/jellyfin.git
synced 2025-12-18 06:53:07 +03:00
Moved discovery of loggers and weather providers to MEF. Also added support for third-party image processors, also discovered through MEF.
This commit is contained in:
parent
01a25c48a0
commit
8b7effd6ff
@@ -1,5 +1,6 @@
|
||||
using MediaBrowser.Common.Kernel;
|
||||
using MediaBrowser.Common.Logging;
|
||||
using MediaBrowser.Controller.Drawing;
|
||||
using MediaBrowser.Controller.Entities;
|
||||
using MediaBrowser.Controller.Entities.TV;
|
||||
using MediaBrowser.Controller.IO;
|
||||
@@ -27,7 +28,6 @@ namespace MediaBrowser.Controller
|
||||
public static Kernel Instance { get; private set; }
|
||||
|
||||
public ItemController ItemController { get; private set; }
|
||||
public WeatherClient WeatherClient { get; private set; }
|
||||
|
||||
public IEnumerable<User> Users { get; private set; }
|
||||
public Folder RootFolder { get; private set; }
|
||||
@@ -47,6 +47,12 @@ namespace MediaBrowser.Controller
|
||||
get { return KernelContext.Server; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the list of currently registered weather prvoiders
|
||||
/// </summary>
|
||||
[ImportMany(typeof(BaseWeatherProvider))]
|
||||
public IEnumerable<BaseWeatherProvider> WeatherProviders { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets the list of currently registered metadata prvoiders
|
||||
/// </summary>
|
||||
@@ -71,6 +77,12 @@ namespace MediaBrowser.Controller
|
||||
/// </summary>
|
||||
internal IBaseItemResolver[] EntityResolvers { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets the list of currently registered entity resolvers
|
||||
/// </summary>
|
||||
[ImportMany(typeof(BaseImageProcessor))]
|
||||
internal IEnumerable<BaseImageProcessor> ImageProcessors { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Creates a kernel based on a Data path, which is akin to our current programdata path
|
||||
/// </summary>
|
||||
@@ -85,13 +97,15 @@ namespace MediaBrowser.Controller
|
||||
/// </summary>
|
||||
protected override void InitializeInternal(IProgress<TaskProgress> progress)
|
||||
{
|
||||
base.InitializeInternal(progress);
|
||||
|
||||
ItemController = new ItemController();
|
||||
DirectoryWatchers = new DirectoryWatchers();
|
||||
|
||||
ItemController.PreBeginResolvePath += ItemController_PreBeginResolvePath;
|
||||
ItemController.BeginResolvePath += ItemController_BeginResolvePath;
|
||||
|
||||
base.InitializeInternal(progress);
|
||||
ExtractFFMpeg();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -101,14 +115,11 @@ namespace MediaBrowser.Controller
|
||||
{
|
||||
await base.ReloadInternal(progress).ConfigureAwait(false);
|
||||
|
||||
ReloadWeatherClient();
|
||||
|
||||
ExtractFFMpeg();
|
||||
|
||||
ReportProgress(progress, "Loading Users");
|
||||
ReloadUsers();
|
||||
|
||||
ReportProgress(progress, "Loading Media Library");
|
||||
|
||||
await ReloadRoot(allowInternetProviders: false).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
@@ -121,8 +132,6 @@ namespace MediaBrowser.Controller
|
||||
|
||||
DirectoryWatchers.Stop();
|
||||
|
||||
DisposeWeatherClient();
|
||||
|
||||
ItemController.PreBeginResolvePath -= ItemController_PreBeginResolvePath;
|
||||
ItemController.BeginResolvePath -= ItemController_BeginResolvePath;
|
||||
}
|
||||
@@ -413,26 +422,5 @@ namespace MediaBrowser.Controller
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Disposes the current WeatherClient
|
||||
/// </summary>
|
||||
private void DisposeWeatherClient()
|
||||
{
|
||||
if (WeatherClient != null)
|
||||
{
|
||||
WeatherClient.Dispose();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Disposes the current WeatherClient and creates a new one
|
||||
/// </summary>
|
||||
private void ReloadWeatherClient()
|
||||
{
|
||||
DisposeWeatherClient();
|
||||
|
||||
WeatherClient = new WeatherClient();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user