diff options
Diffstat (limited to 'Emby.Server.Implementations/ApplicationHost.cs')
| -rw-r--r-- | Emby.Server.Implementations/ApplicationHost.cs | 117 |
1 files changed, 18 insertions, 99 deletions
diff --git a/Emby.Server.Implementations/ApplicationHost.cs b/Emby.Server.Implementations/ApplicationHost.cs index f5a4f1581..31dad48be 100644 --- a/Emby.Server.Implementations/ApplicationHost.cs +++ b/Emby.Server.Implementations/ApplicationHost.cs @@ -112,7 +112,6 @@ using ServiceStack; using ServiceStack.Text.Jsv; using StringExtensions = MediaBrowser.Controller.Extensions.StringExtensions; using X509Certificate = System.Security.Cryptography.X509Certificates.X509Certificate; -using UtfUnknown; namespace Emby.Server.Implementations { @@ -244,8 +243,6 @@ namespace Emby.Server.Implementations /// </summary> protected readonly SimpleInjector.Container Container = new SimpleInjector.Container(); - protected ISystemEvents SystemEvents { get; set; } - /// <summary> /// Gets the server configuration manager. /// </summary> @@ -317,7 +314,7 @@ namespace Emby.Server.Implementations private IUserDataManager UserDataManager { get; set; } private IUserRepository UserRepository { get; set; } internal IDisplayPreferencesRepository DisplayPreferencesRepository { get; set; } - internal IItemRepository ItemRepository { get; set; } + internal SqliteItemRepository ItemRepository { get; set; } private INotificationManager NotificationManager { get; set; } private ISubtitleManager SubtitleManager { get; set; } @@ -371,7 +368,6 @@ namespace Emby.Server.Implementations IFileSystem fileSystem, IEnvironmentInfo environmentInfo, IImageEncoder imageEncoder, - ISystemEvents systemEvents, INetworkManager networkManager) { @@ -383,7 +379,6 @@ namespace Emby.Server.Implementations NetworkManager = networkManager; networkManager.LocalSubnetsFn = GetConfiguredLocalSubnets; EnvironmentInfo = environmentInfo; - SystemEvents = systemEvents; ApplicationPaths = applicationPaths; LoggerFactory = loggerFactory; @@ -466,9 +461,8 @@ namespace Emby.Server.Implementations private static Tuple<Assembly, string> GetAssembly(Type type) { var assembly = type.GetTypeInfo().Assembly; - string path = null; - return new Tuple<Assembly, string>(assembly, path); + return new Tuple<Assembly, string>(assembly, null); } public virtual IStreamHelper CreateStreamHelper() @@ -709,7 +703,7 @@ namespace Emby.Server.Implementations } } - public async Task InitAsync() + public void Init() { HttpPort = ServerConfigurationManager.Configuration.HttpServerPortNumber; HttpsPort = ServerConfigurationManager.Configuration.HttpsPortNumber; @@ -739,7 +733,7 @@ namespace Emby.Server.Implementations SetHttpLimit(); - await RegisterResourcesAsync(); + RegisterResources(); FindParts(); } @@ -754,7 +748,7 @@ namespace Emby.Server.Implementations /// <summary> /// Registers resources that classes will depend on /// </summary> - protected async Task RegisterResourcesAsync() + protected void RegisterResources() { RegisterSingleInstance(ConfigurationManager); RegisterSingleInstance<IApplicationHost>(this); @@ -762,7 +756,6 @@ namespace Emby.Server.Implementations RegisterSingleInstance<IApplicationPaths>(ApplicationPaths); RegisterSingleInstance(JsonSerializer); - RegisterSingleInstance(SystemEvents); RegisterSingleInstance(LoggerFactory, false); RegisterSingleInstance(Logger); @@ -779,7 +772,7 @@ namespace Emby.Server.Implementations IsoManager = new IsoManager(); RegisterSingleInstance(IsoManager); - TaskManager = new TaskManager(ApplicationPaths, JsonSerializer, LoggerFactory, FileSystemManager, SystemEvents); + TaskManager = new TaskManager(ApplicationPaths, JsonSerializer, LoggerFactory, FileSystemManager); RegisterSingleInstance(TaskManager); RegisterSingleInstance(XmlSerializer); @@ -836,9 +829,8 @@ namespace Emby.Server.Implementations DisplayPreferencesRepository = displayPreferencesRepo; RegisterSingleInstance(DisplayPreferencesRepository); - var itemRepo = new SqliteItemRepository(ServerConfigurationManager, this, JsonSerializer, LoggerFactory, assemblyInfo, FileSystemManager, EnvironmentInfo, TimerFactory); - ItemRepository = itemRepo; - RegisterSingleInstance(ItemRepository); + ItemRepository = new SqliteItemRepository(ServerConfigurationManager, this, JsonSerializer, LoggerFactory, assemblyInfo); + RegisterSingleInstance<IItemRepository>(ItemRepository); AuthenticationRepository = GetAuthenticationRepository(); RegisterSingleInstance(AuthenticationRepository); @@ -853,7 +845,7 @@ namespace Emby.Server.Implementations var musicManager = new MusicManager(LibraryManager); RegisterSingleInstance<IMusicManager>(new MusicManager(LibraryManager)); - LibraryMonitor = new LibraryMonitor(LoggerFactory, TaskManager, LibraryManager, ServerConfigurationManager, FileSystemManager, TimerFactory, SystemEvents, EnvironmentInfo); + LibraryMonitor = new LibraryMonitor(LoggerFactory, TaskManager, LibraryManager, ServerConfigurationManager, FileSystemManager, TimerFactory, EnvironmentInfo); RegisterSingleInstance(LibraryMonitor); RegisterSingleInstance<ISearchEngine>(() => new SearchEngine(LoggerFactory, LibraryManager, UserManager)); @@ -888,7 +880,7 @@ namespace Emby.Server.Implementations MediaSourceManager = new MediaSourceManager(ItemRepository, ApplicationPaths, LocalizationManager, UserManager, LibraryManager, LoggerFactory, JsonSerializer, FileSystemManager, UserDataManager, TimerFactory, () => MediaEncoder); RegisterSingleInstance(MediaSourceManager); - SubtitleManager = new SubtitleManager(LoggerFactory, FileSystemManager, LibraryMonitor, MediaSourceManager, ServerConfigurationManager, LocalizationManager); + SubtitleManager = new SubtitleManager(LoggerFactory, FileSystemManager, LibraryMonitor, MediaSourceManager, LocalizationManager); RegisterSingleInstance(SubtitleManager); ProviderManager = new ProviderManager(HttpClient, SubtitleManager, ServerConfigurationManager, LibraryMonitor, LoggerFactory, FileSystemManager, ApplicationPaths, () => LibraryManager, JsonSerializer); @@ -931,7 +923,7 @@ namespace Emby.Server.Implementations EncodingManager = new MediaEncoder.EncodingManager(FileSystemManager, LoggerFactory, MediaEncoder, ChapterManager, LibraryManager); RegisterSingleInstance(EncodingManager); - var activityLogRepo = await GetActivityLogRepositoryAsync(); + var activityLogRepo = GetActivityLogRepository(); RegisterSingleInstance(activityLogRepo); RegisterSingleInstance<IActivityManager>(new ActivityManager(LoggerFactory, activityLogRepo, UserManager)); @@ -956,7 +948,7 @@ namespace Emby.Server.Implementations ((UserManager)UserManager).Initialize(); ((UserDataManager)UserDataManager).Repository = userDataRepo; - itemRepo.Initialize(userDataRepo, UserManager); + ItemRepository.Initialize(userDataRepo, UserManager); ((LibraryManager)LibraryManager).ItemRepository = ItemRepository; } @@ -1015,7 +1007,7 @@ namespace Emby.Server.Implementations try { - if (!FileSystemManager.FileExists(certificateLocation)) + if (!File.Exists(certificateLocation)) { return null; } @@ -1146,11 +1138,11 @@ namespace Emby.Server.Implementations return repo; } - private async Task<IActivityRepository> GetActivityLogRepositoryAsync() + private IActivityRepository GetActivityLogRepository() { - var repo = new ActivityRepository(ServerConfigurationManager.ApplicationPaths.DataPath); + var repo = new ActivityRepository(LoggerFactory, ServerConfigurationManager.ApplicationPaths, FileSystemManager); - await repo.Database.EnsureCreatedAsync(); + repo.Initialize(); return repo; } @@ -1441,7 +1433,7 @@ namespace Emby.Server.Implementations //if (generateCertificate) //{ - // if (!FileSystemManager.FileExists(certPath)) + // if (!File.Exists(certPath)) // { // FileSystemManager.CreateDirectory(FileSystemManager.GetDirectoryName(certPath)); @@ -1571,7 +1563,7 @@ namespace Emby.Server.Implementations /// <returns>IEnumerable{Assembly}.</returns> protected List<Tuple<Assembly, string>> GetComposablePartAssemblies() { - var list = GetPluginAssemblies(); + var list = GetPluginAssemblies(ApplicationPaths.PluginsPath); // Gets all plugin assemblies by first reading all bytes of the .dll and calling Assembly.Load against that // This will prevent the .dll file from getting locked, and allow us to replace it when needed @@ -1622,79 +1614,6 @@ namespace Emby.Server.Implementations protected abstract IEnumerable<Assembly> GetAssembliesWithPartsInternal(); - /// <summary> - /// Gets the plugin assemblies. - /// </summary> - /// <returns>IEnumerable{Assembly}.</returns> - private List<Tuple<Assembly, string>> GetPluginAssemblies() - { - // Copy pre-installed plugins - var sourcePath = Path.Combine(ApplicationPaths.ApplicationResourcesPath, "plugins"); - CopyPlugins(sourcePath, ApplicationPaths.PluginsPath); - - return GetPluginAssemblies(ApplicationPaths.PluginsPath); - } - - private void CopyPlugins(string source, string target) - { - List<string> files; - - try - { - files = Directory.EnumerateFiles(source, "*.dll", SearchOption.TopDirectoryOnly) - .ToList(); - - } - catch (DirectoryNotFoundException) - { - return; - } - - if (files.Count == 0) - { - return; - } - - foreach (var sourceFile in files) - { - var filename = Path.GetFileName(sourceFile); - var targetFile = Path.Combine(target, filename); - - var targetFileExists = File.Exists(targetFile); - - if (!targetFileExists && ServerConfigurationManager.Configuration.UninstalledPlugins.Contains(filename, StringComparer.OrdinalIgnoreCase)) - { - continue; - } - - if (targetFileExists && GetDllVersion(targetFile) >= GetDllVersion(sourceFile)) - { - continue; - } - - Directory.CreateDirectory(target); - File.Copy(sourceFile, targetFile, true); - } - } - - private Version GetDllVersion(string path) - { - try - { - var result = Version.Parse(FileVersionInfo.GetVersionInfo(path).FileVersion); - - Logger.LogInformation("File {Path} has version {Version}", path, result); - - return result; - } - catch (Exception ex) - { - Logger.LogError(ex, "Error getting version number from {Path}", path); - - return new Version(1, 0); - } - } - private List<Tuple<Assembly, string>> GetPluginAssemblies(string path) { try |
