Fix plugin installation and correct api behaviour

The `/Packages/{Name}` endpoint would return a package that had either
the corrent name or the correct guid. In reality it shoud check if both
are correct.
pull/2109/head
Bond_009 5 years ago
parent 6f283d80dc
commit ec70f3ac75

@ -141,8 +141,7 @@ namespace Emby.Server.Implementations.Updates
if (guid != Guid.Empty) if (guid != Guid.Empty)
{ {
var strGuid = guid.ToString("N", CultureInfo.InvariantCulture); availablePackages = availablePackages.Where(x => Guid.Parse(x.guid) == guid);
availablePackages = availablePackages.Where(x => x.guid.Equals(strGuid, StringComparison.OrdinalIgnoreCase));
} }
return availablePackages; return availablePackages;

@ -2,7 +2,6 @@ using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Globalization; using System.Globalization;
using System.Linq; using System.Linq;
using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using MediaBrowser.Common; using MediaBrowser.Common;
using MediaBrowser.Common.Extensions; using MediaBrowser.Common.Extensions;
@ -133,10 +132,11 @@ namespace MediaBrowser.Api
/// <returns>System.Object.</returns> /// <returns>System.Object.</returns>
public object Get(GetPackage request) public object Get(GetPackage request)
{ {
var packages = _installationManager.GetAvailablePackages().Result; var packages = _installationManager.GetAvailablePackages().GetAwaiter().GetResult();
var result = _installationManager.FilterPackages(
var result = packages.FirstOrDefault(p => string.Equals(p.guid, request.AssemblyGuid ?? "none", StringComparison.OrdinalIgnoreCase)) packages,
?? packages.FirstOrDefault(p => p.name.Equals(request.Name, StringComparison.OrdinalIgnoreCase)); request.Name,
string.IsNullOrEmpty(request.AssemblyGuid) ? default : Guid.Parse(request.AssemblyGuid)).FirstOrDefault();
return ToOptimizedResult(result); return ToOptimizedResult(result);
} }
@ -181,7 +181,7 @@ namespace MediaBrowser.Api
var package = _installationManager.GetCompatibleVersions( var package = _installationManager.GetCompatibleVersions(
packages, packages,
request.Name, request.Name,
new Guid(request.AssemblyGuid), string.IsNullOrEmpty(request.AssemblyGuid) ? Guid.Empty : Guid.Parse(request.AssemblyGuid),
string.IsNullOrEmpty(request.Version) ? null : Version.Parse(request.Version), string.IsNullOrEmpty(request.Version) ? null : Version.Parse(request.Version),
request.UpdateClass).FirstOrDefault(); request.UpdateClass).FirstOrDefault();

Loading…
Cancel
Save