|
|
|
@ -126,7 +126,6 @@ namespace Emby.Server.Implementations
|
|
|
|
|
private IMediaEncoder _mediaEncoder;
|
|
|
|
|
private ISessionManager _sessionManager;
|
|
|
|
|
private IHttpClientFactory _httpClientFactory;
|
|
|
|
|
|
|
|
|
|
private string[] _urlPrefixes;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
@ -497,24 +496,11 @@ namespace Emby.Server.Implementations
|
|
|
|
|
HttpsPort = ServerConfiguration.DefaultHttpsPort;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (Plugins != null)
|
|
|
|
|
{
|
|
|
|
|
var pluginBuilder = new StringBuilder();
|
|
|
|
|
|
|
|
|
|
foreach (var plugin in Plugins)
|
|
|
|
|
{
|
|
|
|
|
pluginBuilder.Append(plugin.Name)
|
|
|
|
|
.Append(' ')
|
|
|
|
|
.Append(plugin.Version)
|
|
|
|
|
.AppendLine();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Logger.LogInformation("Plugins: {Plugins}", pluginBuilder.ToString());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
DiscoverTypes();
|
|
|
|
|
|
|
|
|
|
RegisterServices();
|
|
|
|
|
|
|
|
|
|
RegisterPluginServices();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
@ -779,10 +765,24 @@ namespace Emby.Server.Implementations
|
|
|
|
|
|
|
|
|
|
ConfigurationManager.AddParts(GetExports<IConfigurationFactory>());
|
|
|
|
|
_plugins = GetExports<IPlugin>()
|
|
|
|
|
.Select(LoadPlugin)
|
|
|
|
|
.Where(i => i != null)
|
|
|
|
|
.ToArray();
|
|
|
|
|
|
|
|
|
|
if (Plugins != null)
|
|
|
|
|
{
|
|
|
|
|
var pluginBuilder = new StringBuilder();
|
|
|
|
|
|
|
|
|
|
foreach (var plugin in Plugins)
|
|
|
|
|
{
|
|
|
|
|
pluginBuilder.Append(plugin.Name)
|
|
|
|
|
.Append(' ')
|
|
|
|
|
.Append(plugin.Version)
|
|
|
|
|
.AppendLine();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Logger.LogInformation("Plugins: {Plugins}", pluginBuilder.ToString());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
_urlPrefixes = GetUrlPrefixes().ToArray();
|
|
|
|
|
|
|
|
|
|
Resolve<ILibraryManager>().AddParts(
|
|
|
|
@ -812,21 +812,6 @@ namespace Emby.Server.Implementations
|
|
|
|
|
Resolve<IIsoManager>().AddParts(GetExports<IIsoMounter>());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private IPlugin LoadPlugin(IPlugin plugin)
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
plugin.RegisterServices(ServiceCollection);
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
Logger.LogError(ex, "Error loading plugin {PluginName}", plugin.GetType().FullName);
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return plugin;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Discovers the types.
|
|
|
|
|
/// </summary>
|
|
|
|
@ -837,6 +822,22 @@ namespace Emby.Server.Implementations
|
|
|
|
|
_allConcreteTypes = GetTypes(GetComposablePartAssemblies()).ToArray();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void RegisterPluginServices()
|
|
|
|
|
{
|
|
|
|
|
foreach (var pluginServiceRegistrator in GetExportTypes<IPluginServiceRegistrator>())
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
var instance = (IPluginServiceRegistrator)Activator.CreateInstance(pluginServiceRegistrator);
|
|
|
|
|
instance.RegisterServices(ServiceCollection);
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
Logger.LogError(ex, "Error registering plugin services from {Assembly}.", pluginServiceRegistrator.Assembly);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private IEnumerable<Type> GetTypes(IEnumerable<Assembly> assemblies)
|
|
|
|
|
{
|
|
|
|
|
foreach (var ass in assemblies)
|
|
|
|
|