Explorar o código

Replaced TryGetPlugin with GetPlugin

Greenback %!s(int64=4) %!d(string=hai) anos
pai
achega
5323887540

+ 7 - 6
Emby.Server.Implementations/Plugins/PluginManager.cs

@@ -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="version">The version of the plugin to locate.</param>
-        /// <param name="plugin">A <see cref="LocalPlugin"/> if found, otherwise null.</param>
-        /// <returns>Boolean value signifying the success of the search.</returns>
-        public bool TryGetPlugin(Guid id, Version? version, out LocalPlugin? plugin)
+        /// <param name="id">The <see cref="Guid"/> of plugin.</param>
+        /// <param name="version">Optional <see cref="Version"/> of the plugin to locate.</param>
+        /// <returns>A <see cref="LocalPlugin"/> if located, or null if not.</returns>
+        public LocalPlugin? GetPlugin(Guid id, Version? version = null)
         {
         {
+            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>

+ 3 - 2
Emby.Server.Implementations/Updates/InstallationManager.cs

@@ -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)
                                 {
                                 {

+ 20 - 14
Jellyfin.Api/Controllers/PluginsController.cs

@@ -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)
-                && plugin!.Instance is IHasPluginConfiguration configPlugin)
+            var plugin = _pluginManager.GetPlugin(pluginId);
+            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)
-                         || plugin?.Instance is not IHasPluginConfiguration configPlugin)
+            var plugin = _pluginManager.GetPlugin(pluginId);
+            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();

+ 2 - 3
MediaBrowser.Common/Plugins/IPluginManager.cs

@@ -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>Boolean value signifying the success of the search.</returns>
-        bool TryGetPlugin(Guid id, Version? version, out LocalPlugin? plugin);
+        /// <returns>A <see cref="LocalPlugin"/> if located, or null if not.</returns>
+        LocalPlugin? GetPlugin(Guid id, Version? version = null);
 
 
         /// <summary>
         /// <summary>
         /// Removes the plugin.
         /// Removes the plugin.