Replaced TryGetPlugin with GetPlugin

This commit is contained in:
Greenback 2020-12-15 20:27:42 +00:00
parent 0337e39bae
commit 5323887540
4 changed files with 32 additions and 25 deletions

View File

@ -212,12 +212,13 @@ namespace Emby.Server.Implementations
/// <summary> /// <summary>
/// Attempts to find the plugin with and id of <paramref name="id"/>. /// Attempts to find the plugin with and id of <paramref name="id"/>.
/// </summary> /// </summary>
/// <param name="id">Id of plugin.</param> /// <param name="id">The <see cref="Guid"/> of plugin.</param>
/// <param name="version">The version of the plugin to locate.</param> /// <param name="version">Optional <see cref="Version"/> of the plugin to locate.</param>
/// <param name="plugin">A <see cref="LocalPlugin"/> if found, otherwise null.</param> /// <returns>A <see cref="LocalPlugin"/> if located, or null if not.</returns>
/// <returns>Boolean value signifying the success of the search.</returns> public LocalPlugin? GetPlugin(Guid id, Version? version = null)
public bool TryGetPlugin(Guid id, Version? version, out LocalPlugin? plugin)
{ {
LocalPlugin? plugin;
if (version == null) if (version == null)
{ {
// If no version is given, return the current instance. // If no version is given, return the current instance.
@ -235,7 +236,7 @@ namespace Emby.Server.Implementations
plugin = _plugins.FirstOrDefault(p => p.Id.Equals(id) && p.Version.Equals(version)); plugin = _plugins.FirstOrDefault(p => p.Id.Equals(id) && p.Version.Equals(version));
} }
return plugin != null; return plugin;
} }
/// <summary> /// <summary>

View File

@ -197,10 +197,11 @@ namespace Emby.Server.Implementations.Updates
{ {
var version = package.Versions[i]; var version = package.Versions[i];
var plugin = _pluginManager.GetPlugin(packageGuid, version.VersionNumber);
// Update the manifests, if anything changes. // Update the manifests, if anything changes.
if (_pluginManager.TryGetPlugin(packageGuid, version.VersionNumber, out LocalPlugin? plugin)) if (plugin != null)
{ {
bool noChange = string.Equals(plugin!.Manifest.MaxAbi, version.MaxAbi, StringComparison.Ordinal) bool noChange = string.Equals(plugin.Manifest.MaxAbi, version.MaxAbi, StringComparison.Ordinal)
|| string.Equals(plugin.Manifest.TargetAbi, version.TargetAbi, StringComparison.Ordinal); || string.Equals(plugin.Manifest.TargetAbi, version.TargetAbi, StringComparison.Ordinal);
if (!noChange) if (!noChange)
{ {

View File

@ -134,12 +134,13 @@ namespace Jellyfin.Api.Controllers
[ProducesResponseType(StatusCodes.Status404NotFound)] [ProducesResponseType(StatusCodes.Status404NotFound)]
public ActionResult EnablePlugin([FromRoute, Required] Guid pluginId, [FromRoute, Required] Version version) public ActionResult EnablePlugin([FromRoute, Required] Guid pluginId, [FromRoute, Required] Version version)
{ {
if (!_pluginManager.TryGetPlugin(pluginId, version, out var plugin)) var plugin = _pluginManager.GetPlugin(pluginId, version);
if (plugin == null)
{ {
return NotFound(); return NotFound();
} }
_pluginManager.EnablePlugin(plugin!); _pluginManager.EnablePlugin(plugin);
return NoContent(); return NoContent();
} }
@ -157,12 +158,13 @@ namespace Jellyfin.Api.Controllers
[ProducesResponseType(StatusCodes.Status404NotFound)] [ProducesResponseType(StatusCodes.Status404NotFound)]
public ActionResult DisablePlugin([FromRoute, Required] Guid pluginId, [FromRoute, Required] Version version) public ActionResult DisablePlugin([FromRoute, Required] Guid pluginId, [FromRoute, Required] Version version)
{ {
if (!_pluginManager.TryGetPlugin(pluginId, version, out var plugin)) var plugin = _pluginManager.GetPlugin(pluginId, version);
if (plugin == null)
{ {
return NotFound(); return NotFound();
} }
_pluginManager.DisablePlugin(plugin!); _pluginManager.DisablePlugin(plugin);
return NoContent(); return NoContent();
} }
@ -180,7 +182,8 @@ namespace Jellyfin.Api.Controllers
[ProducesResponseType(StatusCodes.Status404NotFound)] [ProducesResponseType(StatusCodes.Status404NotFound)]
public ActionResult UninstallPluginByVersion([FromRoute, Required] Guid pluginId, [FromRoute, Required] Version version) public ActionResult UninstallPluginByVersion([FromRoute, Required] Guid pluginId, [FromRoute, Required] Version version)
{ {
if (!_pluginManager.TryGetPlugin(pluginId, version, out var plugin)) var plugin = _pluginManager.GetPlugin(pluginId, version);
if (plugin == null)
{ {
return NotFound(); return NotFound();
} }
@ -230,8 +233,8 @@ namespace Jellyfin.Api.Controllers
[ProducesResponseType(StatusCodes.Status404NotFound)] [ProducesResponseType(StatusCodes.Status404NotFound)]
public ActionResult<BasePluginConfiguration> GetPluginConfiguration([FromRoute, Required] Guid pluginId) public ActionResult<BasePluginConfiguration> GetPluginConfiguration([FromRoute, Required] Guid pluginId)
{ {
if (_pluginManager.TryGetPlugin(pluginId, null, out var plugin) var plugin = _pluginManager.GetPlugin(pluginId);
&& plugin!.Instance is IHasPluginConfiguration configPlugin) if (plugin?.Instance is IHasPluginConfiguration configPlugin)
{ {
return configPlugin.Configuration; return configPlugin.Configuration;
} }
@ -258,8 +261,8 @@ namespace Jellyfin.Api.Controllers
[ProducesResponseType(StatusCodes.Status404NotFound)] [ProducesResponseType(StatusCodes.Status404NotFound)]
public async Task<ActionResult> UpdatePluginConfiguration([FromRoute, Required] Guid pluginId) public async Task<ActionResult> UpdatePluginConfiguration([FromRoute, Required] Guid pluginId)
{ {
if (!_pluginManager.TryGetPlugin(pluginId, null, out var plugin) var plugin = _pluginManager.GetPlugin(pluginId);
|| plugin?.Instance is not IHasPluginConfiguration configPlugin) if (plugin?.Instance is not IHasPluginConfiguration configPlugin)
{ {
return NotFound(); return NotFound();
} }
@ -289,14 +292,15 @@ namespace Jellyfin.Api.Controllers
[AllowAnonymous] [AllowAnonymous]
public ActionResult GetPluginImage([FromRoute, Required] Guid pluginId, [FromRoute, Required] Version version) public ActionResult GetPluginImage([FromRoute, Required] Guid pluginId, [FromRoute, Required] Version version)
{ {
if (!_pluginManager.TryGetPlugin(pluginId, version, out var plugin)) var plugin = _pluginManager.GetPlugin(pluginId, version);
if (plugin == null)
{ {
return NotFound(); return NotFound();
} }
var imgPath = Path.Combine(plugin!.Path, plugin!.Manifest.ImageUrl ?? string.Empty); var imgPath = Path.Combine(plugin.Path, plugin.Manifest.ImageUrl ?? string.Empty);
if (((ServerConfiguration)_config.CommonConfiguration).DisablePluginImages if (((ServerConfiguration)_config.CommonConfiguration).DisablePluginImages
|| plugin!.Manifest.ImageUrl == null || plugin.Manifest.ImageUrl == null
|| !System.IO.File.Exists(imgPath)) || !System.IO.File.Exists(imgPath))
{ {
// Use a blank image. // Use a blank image.
@ -325,9 +329,11 @@ namespace Jellyfin.Api.Controllers
[ProducesResponseType(StatusCodes.Status404NotFound)] [ProducesResponseType(StatusCodes.Status404NotFound)]
public ActionResult<PluginManifest> GetPluginManifest([FromRoute, Required] Guid pluginId) public ActionResult<PluginManifest> GetPluginManifest([FromRoute, Required] Guid pluginId)
{ {
if (_pluginManager.TryGetPlugin(pluginId, null, out var plugin)) var plugin = _pluginManager.GetPlugin(pluginId);
if (plugin != null)
{ {
return Ok(plugin!.Manifest); return Ok(plugin.Manifest);
} }
return NotFound(); return NotFound();

View File

@ -72,9 +72,8 @@ namespace MediaBrowser.Common.Plugins
/// </summary> /// </summary>
/// <param name="id">Id of plugin.</param> /// <param name="id">Id of plugin.</param>
/// <param name="version">The version of the plugin to locate.</param> /// <param name="version">The version of the plugin to locate.</param>
/// <param name="plugin">A <see cref="LocalPlugin"/> if found, otherwise null.</param> /// <returns>A <see cref="LocalPlugin"/> if located, or null if not.</returns>
/// <returns>Boolean value signifying the success of the search.</returns> LocalPlugin? GetPlugin(Guid id, Version? version = null);
bool TryGetPlugin(Guid id, Version? version, out LocalPlugin? plugin);
/// <summary> /// <summary>
/// Removes the plugin. /// Removes the plugin.