mirror of
https://github.com/jellyfin/jellyfin.git
synced 2024-07-08 23:00:51 +02:00
Merge pull request #3577 from crobibero/package-install-repo
Specify plugin repo on plugin installation
This commit is contained in:
commit
cbf9be9416
|
@ -155,7 +155,12 @@ namespace Emby.Server.Implementations.Updates
|
||||||
var result = new List<PackageInfo>();
|
var result = new List<PackageInfo>();
|
||||||
foreach (RepositoryInfo repository in _config.Configuration.PluginRepositories)
|
foreach (RepositoryInfo repository in _config.Configuration.PluginRepositories)
|
||||||
{
|
{
|
||||||
result.AddRange(await GetPackages(repository.Url, cancellationToken).ConfigureAwait(true));
|
foreach (var package in await GetPackages(repository.Url, cancellationToken).ConfigureAwait(true))
|
||||||
|
{
|
||||||
|
package.repositoryName = repository.Name;
|
||||||
|
package.repositoryUrl = repository.Url;
|
||||||
|
result.Add(package);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
|
|
|
@ -77,6 +77,7 @@ namespace Jellyfin.Api.Controllers
|
||||||
/// <param name="name">Package name.</param>
|
/// <param name="name">Package name.</param>
|
||||||
/// <param name="assemblyGuid">GUID of the associated assembly.</param>
|
/// <param name="assemblyGuid">GUID of the associated assembly.</param>
|
||||||
/// <param name="version">Optional version. Defaults to latest version.</param>
|
/// <param name="version">Optional version. Defaults to latest version.</param>
|
||||||
|
/// <param name="repositoryUrl">Optional. Specify the repository to install from.</param>
|
||||||
/// <response code="204">Package found.</response>
|
/// <response code="204">Package found.</response>
|
||||||
/// <response code="404">Package not found.</response>
|
/// <response code="404">Package not found.</response>
|
||||||
/// <returns>A <see cref="NoContentResult"/> on success, or a <see cref="NotFoundResult"/> if the package could not be found.</returns>
|
/// <returns>A <see cref="NoContentResult"/> on success, or a <see cref="NotFoundResult"/> if the package could not be found.</returns>
|
||||||
|
@ -87,9 +88,16 @@ namespace Jellyfin.Api.Controllers
|
||||||
public async Task<ActionResult> InstallPackage(
|
public async Task<ActionResult> InstallPackage(
|
||||||
[FromRoute, Required] string name,
|
[FromRoute, Required] string name,
|
||||||
[FromQuery] string? assemblyGuid,
|
[FromQuery] string? assemblyGuid,
|
||||||
[FromQuery] string? version)
|
[FromQuery] string? version,
|
||||||
|
[FromQuery] string? repositoryUrl)
|
||||||
{
|
{
|
||||||
var packages = await _installationManager.GetAvailablePackages().ConfigureAwait(false);
|
var packages = await _installationManager.GetAvailablePackages().ConfigureAwait(false);
|
||||||
|
if (!string.IsNullOrEmpty(repositoryUrl))
|
||||||
|
{
|
||||||
|
packages = packages.Where(p => p.repositoryUrl.Equals(repositoryUrl, StringComparison.OrdinalIgnoreCase))
|
||||||
|
.ToList();
|
||||||
|
}
|
||||||
|
|
||||||
var package = _installationManager.GetCompatibleVersions(
|
var package = _installationManager.GetCompatibleVersions(
|
||||||
packages,
|
packages,
|
||||||
name,
|
name,
|
||||||
|
|
|
@ -52,6 +52,16 @@ namespace MediaBrowser.Model.Updates
|
||||||
/// <value>The versions.</value>
|
/// <value>The versions.</value>
|
||||||
public IReadOnlyList<VersionInfo> versions { get; set; }
|
public IReadOnlyList<VersionInfo> versions { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets or sets the repository name.
|
||||||
|
/// </summary>
|
||||||
|
public string repositoryName { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets or sets the repository url.
|
||||||
|
/// </summary>
|
||||||
|
public string repositoryUrl { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Initializes a new instance of the <see cref="PackageInfo"/> class.
|
/// Initializes a new instance of the <see cref="PackageInfo"/> class.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
Loading…
Reference in a new issue