mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-06-02 22:08:27 +01:00
referenced core plugins, fixed some dashboard issues, extracted library manager
This commit is contained in:
@@ -1,14 +1,12 @@
|
||||
using BDInfo;
|
||||
using MediaBrowser.Api;
|
||||
using MediaBrowser.ClickOnce;
|
||||
using MediaBrowser.Common.Implementations;
|
||||
using MediaBrowser.Common.Implementations.HttpClientManager;
|
||||
using MediaBrowser.Common.Implementations.HttpServer;
|
||||
using MediaBrowser.Common.Implementations.Logging;
|
||||
using MediaBrowser.Common.Implementations.NetworkManagement;
|
||||
using MediaBrowser.Common.Implementations.ScheduledTasks;
|
||||
using MediaBrowser.Common.Implementations.Serialization;
|
||||
using MediaBrowser.Common.Implementations.ServerManager;
|
||||
using MediaBrowser.Common.Implementations.Udp;
|
||||
using MediaBrowser.Common.IO;
|
||||
using MediaBrowser.Common.Kernel;
|
||||
using MediaBrowser.Common.Net;
|
||||
@@ -23,11 +21,12 @@ using MediaBrowser.Model.Serialization;
|
||||
using MediaBrowser.Model.System;
|
||||
using MediaBrowser.Model.Updates;
|
||||
using MediaBrowser.Server.Implementations;
|
||||
using MediaBrowser.Server.Implementations.BdInfo;
|
||||
using MediaBrowser.Server.Implementations.Library;
|
||||
using MediaBrowser.ServerApplication.Implementations;
|
||||
using MediaBrowser.WebDashboard.Api;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
@@ -120,7 +119,6 @@ namespace MediaBrowser.ServerApplication
|
||||
|
||||
RegisterSingleInstance<IApplicationHost>(this);
|
||||
|
||||
RegisterSingleInstance<IUserManager>(new UserManager(Kernel, Logger));
|
||||
|
||||
RegisterSingleInstance(ServerApplicationPaths);
|
||||
RegisterSingleInstance<IIsoManager>(new PismoIsoManager(Logger));
|
||||
@@ -129,6 +127,11 @@ namespace MediaBrowser.ServerApplication
|
||||
RegisterSingleInstance(_jsonSerializer);
|
||||
RegisterSingleInstance(_xmlSerializer);
|
||||
RegisterSingleInstance(ServerFactory.CreateServer(this, ProtobufSerializer, Logger, "Media Browser", "index.html"), false);
|
||||
|
||||
var userManager = new UserManager(Kernel, Logger);
|
||||
RegisterSingleInstance<IUserManager>(userManager);
|
||||
|
||||
RegisterSingleInstance<ILibraryManager>(new LibraryManager(Kernel, Logger, taskManager, userManager));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -186,16 +189,11 @@ namespace MediaBrowser.ServerApplication
|
||||
yield return pluginAssembly;
|
||||
}
|
||||
|
||||
var runningDirectory = Path.GetDirectoryName(Process.GetCurrentProcess().MainModule.FileName);
|
||||
var corePluginDirectory = Path.Combine(runningDirectory, "CorePlugins");
|
||||
// Include composable parts in the Api assembly
|
||||
yield return typeof(ApiService).Assembly;
|
||||
|
||||
// This will prevent the .dll file from getting locked, and allow us to replace it when needed
|
||||
foreach (var pluginAssembly in Directory
|
||||
.EnumerateFiles(corePluginDirectory, "*.dll", SearchOption.TopDirectoryOnly)
|
||||
.Select(LoadAssembly).Where(a => a != null))
|
||||
{
|
||||
yield return pluginAssembly;
|
||||
}
|
||||
// Include composable parts in the Dashboard assembly
|
||||
yield return typeof(DashboardInfo).Assembly;
|
||||
|
||||
// Include composable parts in the Model assembly
|
||||
yield return typeof(SystemInfo).Assembly;
|
||||
|
||||
@@ -31,7 +31,8 @@ namespace MediaBrowser.ServerApplication
|
||||
private readonly ILogger _logger;
|
||||
|
||||
private readonly IJsonSerializer _jsonSerializer;
|
||||
|
||||
private readonly ILibraryManager _libraryManager;
|
||||
|
||||
/// <summary>
|
||||
/// The current user
|
||||
/// </summary>
|
||||
@@ -39,7 +40,7 @@ namespace MediaBrowser.ServerApplication
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="LibraryExplorer" /> class.
|
||||
/// </summary>
|
||||
public LibraryExplorer(IJsonSerializer jsonSerializer, ILogger logger, IApplicationHost appHost, IUserManager userManager)
|
||||
public LibraryExplorer(IJsonSerializer jsonSerializer, ILogger logger, IApplicationHost appHost, IUserManager userManager, ILibraryManager libraryManager)
|
||||
{
|
||||
_logger = logger;
|
||||
_jsonSerializer = jsonSerializer;
|
||||
@@ -51,6 +52,8 @@ namespace MediaBrowser.ServerApplication
|
||||
ddlProfile.Items.Insert(0,new User {Name = "Physical"});
|
||||
ddlProfile.SelectedIndex = 0;
|
||||
ddlIndexBy.Visibility = ddlSortBy.Visibility = lblIndexBy.Visibility = lblSortBy.Visibility = Visibility.Hidden;
|
||||
|
||||
_libraryManager = libraryManager;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -77,7 +80,7 @@ namespace MediaBrowser.ServerApplication
|
||||
await Task.Run(() =>
|
||||
{
|
||||
IEnumerable<BaseItem> children;
|
||||
children = CurrentUser.Name == "Physical" ? Kernel.Instance.RootFolder.Children.OrderBy(i => i.SortName) : Kernel.Instance.RootFolder.GetChildren(CurrentUser, sortBy: LocalizedStrings.Instance.GetString("NameDispPref"));
|
||||
children = CurrentUser.Name == "Physical" ? _libraryManager.RootFolder.Children.OrderBy(i => i.SortName) : _libraryManager.RootFolder.GetChildren(CurrentUser, sortBy: LocalizedStrings.Instance.GetString("NameDispPref"));
|
||||
|
||||
foreach (Folder folder in children)
|
||||
{
|
||||
|
||||
@@ -54,6 +54,8 @@ namespace MediaBrowser.ServerApplication
|
||||
/// The _log manager
|
||||
/// </summary>
|
||||
private readonly ILogManager _logManager;
|
||||
|
||||
private readonly ILibraryManager _libraryManager;
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="MainWindow" /> class.
|
||||
@@ -62,7 +64,7 @@ namespace MediaBrowser.ServerApplication
|
||||
/// <param name="logger">The logger.</param>
|
||||
/// <param name="appHost">The app host.</param>
|
||||
/// <exception cref="System.ArgumentNullException">logger</exception>
|
||||
public MainWindow(ILogManager logManager, IApplicationHost appHost)
|
||||
public MainWindow(ILogManager logManager, IApplicationHost appHost, ILibraryManager libraryManager)
|
||||
{
|
||||
if (logManager == null)
|
||||
{
|
||||
@@ -72,6 +74,7 @@ namespace MediaBrowser.ServerApplication
|
||||
_logger = logManager.GetLogger("MainWindow");
|
||||
_appHost = appHost;
|
||||
_logManager = logManager;
|
||||
_libraryManager = libraryManager;
|
||||
|
||||
InitializeComponent();
|
||||
|
||||
@@ -231,8 +234,8 @@ namespace MediaBrowser.ServerApplication
|
||||
/// <param name="e">The e.</param>
|
||||
void KernelReloadCompleted(object sender, EventArgs e)
|
||||
{
|
||||
Kernel.Instance.LibraryManager.LibraryChanged -= Instance_LibraryChanged;
|
||||
Kernel.Instance.LibraryManager.LibraryChanged += Instance_LibraryChanged;
|
||||
_libraryManager.LibraryChanged -= Instance_LibraryChanged;
|
||||
_libraryManager.LibraryChanged += Instance_LibraryChanged;
|
||||
|
||||
if (_appHost.IsFirstRun)
|
||||
{
|
||||
|
||||
@@ -254,9 +254,9 @@
|
||||
</None>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\BDInfo\BDInfo.csproj">
|
||||
<Project>{07b509c0-0c28-4f3f-8963-5263281f7e3d}</Project>
|
||||
<Name>BDInfo</Name>
|
||||
<ProjectReference Include="..\MediaBrowser.Api\MediaBrowser.Api.csproj">
|
||||
<Project>{4fd51ac5-2c16-4308-a993-c3a84f3b4582}</Project>
|
||||
<Name>MediaBrowser.Api</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\MediaBrowser.ClickOnce\MediaBrowser.ClickOnce.csproj">
|
||||
<Project>{cc96bf3e-0bda-4809-bc4b-bb6d418f4a84}</Project>
|
||||
@@ -286,6 +286,10 @@
|
||||
<Project>{2e781478-814d-4a48-9d80-bff206441a65}</Project>
|
||||
<Name>MediaBrowser.Server.Implementations</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\MediaBrowser.WebDashboard\MediaBrowser.WebDashboard.csproj">
|
||||
<Project>{5624b7b5-b5a7-41d8-9f10-cc5611109619}</Project>
|
||||
<Name>MediaBrowser.WebDashboard</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Resource Include="Resources\Images\icon.ico" />
|
||||
@@ -364,12 +368,6 @@
|
||||
</BootstrapperPackage>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="CorePlugins\MediaBrowser.Api.dll">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="CorePlugins\MediaBrowser.WebDashboard.dll">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="x64\SQLite.Interop.dll">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</Content>
|
||||
|
||||
Reference in New Issue
Block a user