|
|
|
@ -120,6 +120,10 @@ namespace Emby.Server.Implementations
|
|
|
|
|
{
|
|
|
|
|
private SqliteUserRepository _userRepository;
|
|
|
|
|
private SqliteDisplayPreferencesRepository _displayPreferencesRepository;
|
|
|
|
|
private ISessionManager _sessionManager;
|
|
|
|
|
private ILiveTvManager _liveTvManager;
|
|
|
|
|
private INotificationManager _notificationManager;
|
|
|
|
|
private IHttpServer _httpServer;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Gets a value indicating whether this instance can self restart.
|
|
|
|
@ -266,11 +270,7 @@ namespace Emby.Server.Implementations
|
|
|
|
|
/// <value>The provider manager.</value>
|
|
|
|
|
private IProviderManager ProviderManager { get; set; }
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Gets or sets the HTTP server.
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <value>The HTTP server.</value>
|
|
|
|
|
private IHttpServer HttpServer { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private IDtoService DtoService { get; set; }
|
|
|
|
|
|
|
|
|
@ -282,10 +282,6 @@ namespace Emby.Server.Implementations
|
|
|
|
|
/// <value>The media encoder.</value>
|
|
|
|
|
private IMediaEncoder MediaEncoder { get; set; }
|
|
|
|
|
|
|
|
|
|
private ISessionManager SessionManager { get; set; }
|
|
|
|
|
|
|
|
|
|
private ILiveTvManager LiveTvManager { get; set; }
|
|
|
|
|
|
|
|
|
|
public LocalizationManager LocalizationManager { get; set; }
|
|
|
|
|
|
|
|
|
|
private IChannelManager ChannelManager { get; set; }
|
|
|
|
@ -298,7 +294,7 @@ namespace Emby.Server.Implementations
|
|
|
|
|
|
|
|
|
|
internal SqliteItemRepository ItemRepository { get; set; }
|
|
|
|
|
|
|
|
|
|
private INotificationManager NotificationManager { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private ISubtitleManager SubtitleManager { get; set; }
|
|
|
|
|
|
|
|
|
@ -308,8 +304,6 @@ namespace Emby.Server.Implementations
|
|
|
|
|
|
|
|
|
|
private ITVSeriesManager TVSeriesManager { get; set; }
|
|
|
|
|
|
|
|
|
|
private ICollectionManager CollectionManager { get; set; }
|
|
|
|
|
|
|
|
|
|
private IMediaSourceManager MediaSourceManager { get; set; }
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
@ -541,7 +535,7 @@ namespace Emby.Server.Implementations
|
|
|
|
|
Logger.LogInformation("Executed all pre-startup entry points in {Elapsed:g}", stopWatch.Elapsed);
|
|
|
|
|
|
|
|
|
|
Logger.LogInformation("Core startup complete");
|
|
|
|
|
HttpServer.GlobalResponse = null;
|
|
|
|
|
_httpServer.GlobalResponse = null;
|
|
|
|
|
|
|
|
|
|
stopWatch.Restart();
|
|
|
|
|
await Task.WhenAll(StartEntryPoints(entryPoints, false)).ConfigureAwait(false);
|
|
|
|
@ -609,7 +603,7 @@ namespace Emby.Server.Implementations
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
await HttpServer.ProcessWebSocketRequest(context).ConfigureAwait(false);
|
|
|
|
|
await _httpServer.ProcessWebSocketRequest(context).ConfigureAwait(false);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public async Task ExecuteHttpHandlerAsync(HttpContext context, Func<Task> next)
|
|
|
|
@ -625,7 +619,7 @@ namespace Emby.Server.Implementations
|
|
|
|
|
var localPath = context.Request.Path.ToString();
|
|
|
|
|
|
|
|
|
|
var req = new WebSocketSharpRequest(request, response, request.Path, LoggerFactory.CreateLogger<WebSocketSharpRequest>());
|
|
|
|
|
await HttpServer.RequestHandler(req, request.GetDisplayUrl(), request.Host.ToString(), localPath, context.RequestAborted).ConfigureAwait(false);
|
|
|
|
|
await _httpServer.RequestHandler(req, request.GetDisplayUrl(), request.Host.ToString(), localPath, context.RequestAborted).ConfigureAwait(false);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
@ -771,31 +765,17 @@ namespace Emby.Server.Implementations
|
|
|
|
|
ProviderManager = new ProviderManager(HttpClient, SubtitleManager, ServerConfigurationManager, LibraryMonitor, LoggerFactory, FileSystemManager, ApplicationPaths, () => LibraryManager, JsonSerializer);
|
|
|
|
|
serviceCollection.AddSingleton(ProviderManager);
|
|
|
|
|
|
|
|
|
|
DtoService = new DtoService(LoggerFactory, LibraryManager, UserDataManager, ItemRepository, ImageProcessor, ProviderManager, this, () => MediaSourceManager, () => LiveTvManager);
|
|
|
|
|
DtoService = new DtoService(LoggerFactory, LibraryManager, UserDataManager, ItemRepository, ImageProcessor, ProviderManager, this, () => MediaSourceManager, () => _liveTvManager);
|
|
|
|
|
serviceCollection.AddSingleton(DtoService);
|
|
|
|
|
|
|
|
|
|
ChannelManager = new ChannelManager(UserManager, DtoService, LibraryManager, LoggerFactory, ServerConfigurationManager, FileSystemManager, UserDataManager, JsonSerializer, ProviderManager);
|
|
|
|
|
serviceCollection.AddSingleton(ChannelManager);
|
|
|
|
|
|
|
|
|
|
SessionManager = new SessionManager(
|
|
|
|
|
LoggerFactory.CreateLogger<SessionManager>(),
|
|
|
|
|
UserDataManager,
|
|
|
|
|
LibraryManager,
|
|
|
|
|
UserManager,
|
|
|
|
|
musicManager,
|
|
|
|
|
DtoService,
|
|
|
|
|
ImageProcessor,
|
|
|
|
|
this,
|
|
|
|
|
AuthenticationRepository,
|
|
|
|
|
DeviceManager,
|
|
|
|
|
MediaSourceManager);
|
|
|
|
|
serviceCollection.AddSingleton(SessionManager);
|
|
|
|
|
serviceCollection.AddSingleton<ISessionManager, SessionManager>();
|
|
|
|
|
|
|
|
|
|
serviceCollection.AddSingleton<IDlnaManager>(
|
|
|
|
|
new DlnaManager(XmlSerializer, FileSystemManager, ApplicationPaths, LoggerFactory, JsonSerializer, this));
|
|
|
|
|
serviceCollection.AddSingleton<IDlnaManager, DlnaManager>();
|
|
|
|
|
|
|
|
|
|
CollectionManager = new CollectionManager(LibraryManager, ApplicationPaths, LocalizationManager, FileSystemManager, LibraryMonitor, LoggerFactory, ProviderManager);
|
|
|
|
|
serviceCollection.AddSingleton(CollectionManager);
|
|
|
|
|
serviceCollection.AddSingleton<ICollectionManager, CollectionManager>();
|
|
|
|
|
|
|
|
|
|
serviceCollection.AddSingleton<IPlaylistManager, PlaylistManager>();
|
|
|
|
|
|
|
|
|
@ -832,9 +812,10 @@ namespace Emby.Server.Implementations
|
|
|
|
|
/// </summary>
|
|
|
|
|
public void InitializeServices()
|
|
|
|
|
{
|
|
|
|
|
LiveTvManager = Resolve<ILiveTvManager>();
|
|
|
|
|
NotificationManager = Resolve<INotificationManager>();
|
|
|
|
|
HttpServer = Resolve<IHttpServer>();
|
|
|
|
|
_sessionManager = Resolve<ISessionManager>();
|
|
|
|
|
_liveTvManager = Resolve<ILiveTvManager>();
|
|
|
|
|
_notificationManager = Resolve<INotificationManager>();
|
|
|
|
|
_httpServer = Resolve<IHttpServer>();
|
|
|
|
|
|
|
|
|
|
((ActivityRepository)Resolve<IActivityRepository>()).Initialize();
|
|
|
|
|
_displayPreferencesRepository.Initialize();
|
|
|
|
@ -958,10 +939,10 @@ namespace Emby.Server.Implementations
|
|
|
|
|
BaseItem.FileSystem = FileSystemManager;
|
|
|
|
|
BaseItem.UserDataManager = UserDataManager;
|
|
|
|
|
BaseItem.ChannelManager = ChannelManager;
|
|
|
|
|
Video.LiveTvManager = LiveTvManager;
|
|
|
|
|
Video.LiveTvManager = _liveTvManager;
|
|
|
|
|
Folder.UserViewManager = Resolve<IUserViewManager>();
|
|
|
|
|
UserView.TVSeriesManager = TVSeriesManager;
|
|
|
|
|
UserView.CollectionManager = CollectionManager;
|
|
|
|
|
UserView.CollectionManager = Resolve<ICollectionManager>();
|
|
|
|
|
BaseItem.MediaSourceManager = MediaSourceManager;
|
|
|
|
|
CollectionFolder.XmlSerializer = XmlSerializer;
|
|
|
|
|
CollectionFolder.JsonSerializer = JsonSerializer;
|
|
|
|
@ -1024,7 +1005,7 @@ namespace Emby.Server.Implementations
|
|
|
|
|
.Where(i => i != null)
|
|
|
|
|
.ToArray();
|
|
|
|
|
|
|
|
|
|
HttpServer.Init(GetExportTypes<IService>(), GetExports<IWebSocketListener>(), GetUrlPrefixes());
|
|
|
|
|
_httpServer.Init(GetExportTypes<IService>(), GetExports<IWebSocketListener>(), GetUrlPrefixes());
|
|
|
|
|
|
|
|
|
|
LibraryManager.AddParts(
|
|
|
|
|
GetExports<IResolverIgnoreRule>(),
|
|
|
|
@ -1040,7 +1021,7 @@ namespace Emby.Server.Implementations
|
|
|
|
|
GetExports<IMetadataSaver>(),
|
|
|
|
|
GetExports<IExternalId>());
|
|
|
|
|
|
|
|
|
|
LiveTvManager.AddParts(GetExports<ILiveTvService>(), GetExports<ITunerHost>(), GetExports<IListingsProvider>());
|
|
|
|
|
_liveTvManager.AddParts(GetExports<ILiveTvService>(), GetExports<ITunerHost>(), GetExports<IListingsProvider>());
|
|
|
|
|
|
|
|
|
|
SubtitleManager.AddParts(GetExports<ISubtitleProvider>());
|
|
|
|
|
|
|
|
|
@ -1048,7 +1029,7 @@ namespace Emby.Server.Implementations
|
|
|
|
|
|
|
|
|
|
MediaSourceManager.AddParts(GetExports<IMediaSourceProvider>());
|
|
|
|
|
|
|
|
|
|
NotificationManager.AddParts(GetExports<INotificationService>(), GetExports<INotificationTypeFactory>());
|
|
|
|
|
_notificationManager.AddParts(GetExports<INotificationService>(), GetExports<INotificationTypeFactory>());
|
|
|
|
|
UserManager.AddParts(GetExports<IAuthenticationProvider>(), GetExports<IPasswordResetProvider>());
|
|
|
|
|
|
|
|
|
|
IsoManager.AddParts(GetExports<IIsoMounter>());
|
|
|
|
@ -1194,7 +1175,7 @@ namespace Emby.Server.Implementations
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (!HttpServer.UrlPrefixes.SequenceEqual(GetUrlPrefixes(), StringComparer.OrdinalIgnoreCase))
|
|
|
|
|
if (!_httpServer.UrlPrefixes.SequenceEqual(GetUrlPrefixes(), StringComparer.OrdinalIgnoreCase))
|
|
|
|
|
{
|
|
|
|
|
requiresRestart = true;
|
|
|
|
|
}
|
|
|
|
@ -1254,7 +1235,7 @@ namespace Emby.Server.Implementations
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
await SessionManager.SendServerRestartNotification(CancellationToken.None).ConfigureAwait(false);
|
|
|
|
|
await _sessionManager.SendServerRestartNotification(CancellationToken.None).ConfigureAwait(false);
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
@ -1618,7 +1599,7 @@ namespace Emby.Server.Implementations
|
|
|
|
|
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
await SessionManager.SendServerShutdownNotification(CancellationToken.None).ConfigureAwait(false);
|
|
|
|
|
await _sessionManager.SendServerShutdownNotification(CancellationToken.None).ConfigureAwait(false);
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|