mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-04-20 00:55:13 +01:00
added a shutdown api method, font size fix and other decouplings
This commit is contained in:
@@ -12,7 +12,6 @@ using MediaBrowser.Controller.Playback;
|
||||
using MediaBrowser.Controller.Plugins;
|
||||
using MediaBrowser.Controller.Providers;
|
||||
using MediaBrowser.Controller.Resolvers;
|
||||
using MediaBrowser.Controller.ScheduledTasks;
|
||||
using MediaBrowser.Controller.Updates;
|
||||
using MediaBrowser.Controller.Weather;
|
||||
using MediaBrowser.Model.Configuration;
|
||||
@@ -293,8 +292,6 @@ namespace MediaBrowser.Controller
|
||||
get { return 7359; }
|
||||
}
|
||||
|
||||
private readonly ITaskManager _taskManager;
|
||||
|
||||
/// <summary>
|
||||
/// Creates a kernel based on a Data path, which is akin to our current programdata path
|
||||
/// </summary>
|
||||
@@ -304,13 +301,11 @@ namespace MediaBrowser.Controller
|
||||
/// <param name="taskManager">The task manager.</param>
|
||||
/// <param name="logger">The logger.</param>
|
||||
/// <exception cref="System.ArgumentNullException">isoManager</exception>
|
||||
public Kernel(IApplicationHost appHost, IServerApplicationPaths appPaths, IXmlSerializer xmlSerializer, ITaskManager taskManager, ILogger logger)
|
||||
public Kernel(IApplicationHost appHost, IServerApplicationPaths appPaths, IXmlSerializer xmlSerializer, ILogger logger)
|
||||
: base(appHost, appPaths, xmlSerializer, logger)
|
||||
{
|
||||
Instance = this;
|
||||
|
||||
_taskManager = taskManager;
|
||||
|
||||
// For now there's no real way to inject this properly
|
||||
BaseItem.Logger = logger;
|
||||
Ratings.Logger = logger;
|
||||
@@ -469,7 +464,7 @@ namespace MediaBrowser.Controller
|
||||
{
|
||||
DisposeFileSystemManager();
|
||||
|
||||
FileSystemManager = new FileSystemManager(this, Logger, _taskManager);
|
||||
FileSystemManager = new FileSystemManager(this, Logger, ApplicationHost.Resolve<ITaskManager>());
|
||||
FileSystemManager.StartWatchers();
|
||||
}
|
||||
|
||||
@@ -540,18 +535,6 @@ namespace MediaBrowser.Controller
|
||||
|
||||
var reloadLogger = config.ShowLogWindow != oldConfiguration.ShowLogWindow;
|
||||
|
||||
// Figure out whether or not we should refresh people after the update is finished
|
||||
var refreshPeopleAfterUpdate = !oldConfiguration.EnableInternetProviders && config.EnableInternetProviders;
|
||||
|
||||
// This is true if internet providers has just been turned on, or if People have just been removed from InternetProviderExcludeTypes
|
||||
if (!refreshPeopleAfterUpdate)
|
||||
{
|
||||
var oldConfigurationFetchesPeopleImages = oldConfiguration.InternetProviderExcludeTypes == null || !oldConfiguration.InternetProviderExcludeTypes.Contains(typeof(Person).Name, StringComparer.OrdinalIgnoreCase);
|
||||
var newConfigurationFetchesPeopleImages = config.InternetProviderExcludeTypes == null || !config.InternetProviderExcludeTypes.Contains(typeof(Person).Name, StringComparer.OrdinalIgnoreCase);
|
||||
|
||||
refreshPeopleAfterUpdate = newConfigurationFetchesPeopleImages && !oldConfigurationFetchesPeopleImages;
|
||||
}
|
||||
|
||||
Configuration = config;
|
||||
SaveConfiguration();
|
||||
|
||||
@@ -560,20 +543,10 @@ namespace MediaBrowser.Controller
|
||||
ReloadLogger();
|
||||
}
|
||||
|
||||
TcpManager.OnApplicationConfigurationChanged(oldConfiguration, config);
|
||||
|
||||
// Validate currently executing providers, in the background
|
||||
Task.Run(() =>
|
||||
{
|
||||
ProviderManager.ValidateCurrentlyRunningProviders();
|
||||
|
||||
// Any number of configuration settings could change the way the library is refreshed, so do that now
|
||||
_taskManager.CancelIfRunningAndQueue<RefreshMediaLibraryTask>();
|
||||
|
||||
if (refreshPeopleAfterUpdate)
|
||||
{
|
||||
_taskManager.CancelIfRunningAndQueue<PeopleValidationTask>();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
using MediaBrowser.Common.Events;
|
||||
using MediaBrowser.Common.Extensions;
|
||||
using MediaBrowser.Common.ScheduledTasks;
|
||||
using MediaBrowser.Controller.Entities;
|
||||
using MediaBrowser.Controller.IO;
|
||||
using MediaBrowser.Controller.Resolvers;
|
||||
using MediaBrowser.Controller.ScheduledTasks;
|
||||
using MediaBrowser.Model.Entities;
|
||||
using MediaBrowser.Model.Logging;
|
||||
using MoreLinq;
|
||||
@@ -20,7 +22,7 @@ namespace MediaBrowser.Controller.Library
|
||||
/// <summary>
|
||||
/// Class LibraryManager
|
||||
/// </summary>
|
||||
public class LibraryManager : BaseManager<Kernel>
|
||||
public class LibraryManager
|
||||
{
|
||||
#region LibraryChanged Event
|
||||
/// <summary>
|
||||
@@ -48,7 +50,7 @@ namespace MediaBrowser.Controller.Library
|
||||
private void SendLibraryChangedWebSocketMessage(ChildrenChangedEventArgs args)
|
||||
{
|
||||
// Notify connected ui's
|
||||
Kernel.TcpManager.SendWebSocketMessage("LibraryChanged", () => DtoBuilder.GetLibraryUpdateInfo(args));
|
||||
Kernel.ServerManager.SendWebSocketMessage("LibraryChanged", () => DtoBuilder.GetLibraryUpdateInfo(args));
|
||||
}
|
||||
#endregion
|
||||
|
||||
@@ -57,15 +59,57 @@ namespace MediaBrowser.Controller.Library
|
||||
/// </summary>
|
||||
private readonly ILogger _logger;
|
||||
|
||||
/// <summary>
|
||||
/// The _task manager
|
||||
/// </summary>
|
||||
private readonly ITaskManager _taskManager;
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the kernel.
|
||||
/// </summary>
|
||||
/// <value>The kernel.</value>
|
||||
private Kernel Kernel { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="LibraryManager" /> class.
|
||||
/// </summary>
|
||||
/// <param name="kernel">The kernel.</param>
|
||||
/// <param name="logger">The logger.</param>
|
||||
public LibraryManager(Kernel kernel, ILogger logger)
|
||||
: base(kernel)
|
||||
/// <param name="taskManager">The task manager.</param>
|
||||
public LibraryManager(Kernel kernel, ILogger logger, ITaskManager taskManager)
|
||||
{
|
||||
Kernel = kernel;
|
||||
_logger = logger;
|
||||
_taskManager = taskManager;
|
||||
|
||||
kernel.ConfigurationUpdated += kernel_ConfigurationUpdated;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Handles the ConfigurationUpdated event of the kernel control.
|
||||
/// </summary>
|
||||
/// <param name="sender">The source of the event.</param>
|
||||
/// <param name="e">The <see cref="EventArgs" /> instance containing the event data.</param>
|
||||
void kernel_ConfigurationUpdated(object sender, EventArgs e)
|
||||
{
|
||||
//// Figure out whether or not we should refresh people after the update is finished
|
||||
//var refreshPeopleAfterUpdate = !oldConfiguration.EnableInternetProviders && config.EnableInternetProviders;
|
||||
|
||||
//// This is true if internet providers has just been turned on, or if People have just been removed from InternetProviderExcludeTypes
|
||||
//if (!refreshPeopleAfterUpdate)
|
||||
//{
|
||||
// var oldConfigurationFetchesPeopleImages = oldConfiguration.InternetProviderExcludeTypes == null || !oldConfiguration.InternetProviderExcludeTypes.Contains(typeof(Person).Name, StringComparer.OrdinalIgnoreCase);
|
||||
// var newConfigurationFetchesPeopleImages = config.InternetProviderExcludeTypes == null || !config.InternetProviderExcludeTypes.Contains(typeof(Person).Name, StringComparer.OrdinalIgnoreCase);
|
||||
|
||||
// refreshPeopleAfterUpdate = newConfigurationFetchesPeopleImages && !oldConfigurationFetchesPeopleImages;
|
||||
//}
|
||||
|
||||
Task.Run(() =>
|
||||
{
|
||||
// Any number of configuration settings could change the way the library is refreshed, so do that now
|
||||
_taskManager.CancelIfRunningAndQueue<RefreshMediaLibraryTask>();
|
||||
_taskManager.CancelIfRunningAndQueue<PeopleValidationTask>();
|
||||
});
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -73,7 +73,7 @@ namespace MediaBrowser.Controller.Library
|
||||
EventHelper.QueueEventIfNotNull(UserUpdated, this, new GenericEventArgs<User> { Argument = user }, _logger);
|
||||
|
||||
// Notify connected ui's
|
||||
Kernel.TcpManager.SendWebSocketMessage("UserUpdated", new DtoBuilder(_logger).GetDtoUser(user));
|
||||
Kernel.ServerManager.SendWebSocketMessage("UserUpdated", new DtoBuilder(_logger).GetDtoUser(user));
|
||||
}
|
||||
#endregion
|
||||
|
||||
@@ -91,7 +91,7 @@ namespace MediaBrowser.Controller.Library
|
||||
EventHelper.QueueEventIfNotNull(UserDeleted, this, new GenericEventArgs<User> { Argument = user }, _logger);
|
||||
|
||||
// Notify connected ui's
|
||||
Kernel.TcpManager.SendWebSocketMessage("UserDeleted", user.Id.ToString());
|
||||
Kernel.ServerManager.SendWebSocketMessage("UserDeleted", user.Id.ToString());
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
||||
@@ -49,7 +49,7 @@ namespace MediaBrowser.Controller.Updates
|
||||
EventHelper.QueueEventIfNotNull(PluginUninstalled, this, new GenericEventArgs<IPlugin> { Argument = plugin }, _logger);
|
||||
|
||||
// Notify connected ui's
|
||||
Kernel.TcpManager.SendWebSocketMessage("PluginUninstalled", plugin.GetPluginInfo());
|
||||
Kernel.ServerManager.SendWebSocketMessage("PluginUninstalled", plugin.GetPluginInfo());
|
||||
}
|
||||
#endregion
|
||||
|
||||
@@ -371,7 +371,7 @@ namespace MediaBrowser.Controller.Updates
|
||||
|
||||
var linkedToken = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken, innerCancellationTokenSource.Token).Token;
|
||||
|
||||
Kernel.TcpManager.SendWebSocketMessage("PackageInstalling", installationInfo);
|
||||
Kernel.ServerManager.SendWebSocketMessage("PackageInstalling", installationInfo);
|
||||
|
||||
try
|
||||
{
|
||||
@@ -384,7 +384,7 @@ namespace MediaBrowser.Controller.Updates
|
||||
|
||||
CompletedInstallations.Add(installationInfo);
|
||||
|
||||
Kernel.TcpManager.SendWebSocketMessage("PackageInstallationCompleted", installationInfo);
|
||||
Kernel.ServerManager.SendWebSocketMessage("PackageInstallationCompleted", installationInfo);
|
||||
}
|
||||
catch (OperationCanceledException)
|
||||
{
|
||||
@@ -395,7 +395,7 @@ namespace MediaBrowser.Controller.Updates
|
||||
|
||||
_logger.Info("Package installation cancelled: {0} {1}", package.name, package.versionStr);
|
||||
|
||||
Kernel.TcpManager.SendWebSocketMessage("PackageInstallationCancelled", installationInfo);
|
||||
Kernel.ServerManager.SendWebSocketMessage("PackageInstallationCancelled", installationInfo);
|
||||
|
||||
throw;
|
||||
}
|
||||
@@ -406,7 +406,7 @@ namespace MediaBrowser.Controller.Updates
|
||||
CurrentInstallations.Remove(tuple);
|
||||
}
|
||||
|
||||
Kernel.TcpManager.SendWebSocketMessage("PackageInstallationFailed", installationInfo);
|
||||
Kernel.ServerManager.SendWebSocketMessage("PackageInstallationFailed", installationInfo);
|
||||
|
||||
throw;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user