mirror of
https://github.com/jellyfin/jellyfin.git
synced 2025-07-09 03:04:24 -04:00
fixes #709 - Add option to show all languages in image interface
This commit is contained in:
parent
03d17dea70
commit
5a41d7e0fd
@ -40,9 +40,6 @@ namespace MediaBrowser.Api.Images
|
|||||||
|
|
||||||
[ApiMember(Name = "ProviderName", Description = "Optional. The image provider to use", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "GET")]
|
[ApiMember(Name = "ProviderName", Description = "Optional. The image provider to use", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "GET")]
|
||||||
public string ProviderName { get; set; }
|
public string ProviderName { get; set; }
|
||||||
|
|
||||||
[ApiMember(Name = "IncludeAllLanguages", Description = "Optional.", IsRequired = false, DataType = "bool", ParameterType = "query", Verb = "GET")]
|
|
||||||
public bool IncludeAllLanguages { get; set; }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[Route("/Items/{Id}/RemoteImages", "GET")]
|
[Route("/Items/{Id}/RemoteImages", "GET")]
|
||||||
@ -220,14 +217,7 @@ namespace MediaBrowser.Api.Images
|
|||||||
|
|
||||||
private RemoteImageResult GetRemoteImageResult(BaseItem item, BaseRemoteImageRequest request)
|
private RemoteImageResult GetRemoteImageResult(BaseItem item, BaseRemoteImageRequest request)
|
||||||
{
|
{
|
||||||
var images = _providerManager.GetAvailableRemoteImages(item, new RemoteImageQuery
|
var images = _providerManager.GetAvailableRemoteImages(item, CancellationToken.None, request.ProviderName, request.Type).Result;
|
||||||
{
|
|
||||||
ProviderName = request.ProviderName,
|
|
||||||
IncludeAllLanguages = request.IncludeAllLanguages,
|
|
||||||
IncludeDisabledProviders = true,
|
|
||||||
ImageType = request.Type
|
|
||||||
|
|
||||||
}, CancellationToken.None).Result;
|
|
||||||
|
|
||||||
var imagesList = images.ToList();
|
var imagesList = images.ToList();
|
||||||
|
|
||||||
|
@ -190,8 +190,6 @@ namespace MediaBrowser.Controller.LiveTv
|
|||||||
|
|
||||||
public override Task UpdateToRepository(ItemUpdateType updateReason, CancellationToken cancellationToken)
|
public override Task UpdateToRepository(ItemUpdateType updateReason, CancellationToken cancellationToken)
|
||||||
{
|
{
|
||||||
DateLastSaved = DateTime.UtcNow;
|
|
||||||
|
|
||||||
// Avoid library manager and keep out of in-memory cache
|
// Avoid library manager and keep out of in-memory cache
|
||||||
// Not great that this class has to know about that, but we'll improve that later.
|
// Not great that this class has to know about that, but we'll improve that later.
|
||||||
return ItemRepository.SaveItem(this, cancellationToken);
|
return ItemRepository.SaveItem(this, cancellationToken);
|
||||||
|
@ -62,10 +62,11 @@ namespace MediaBrowser.Controller.Providers
|
|||||||
/// Gets the available remote images.
|
/// Gets the available remote images.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="item">The item.</param>
|
/// <param name="item">The item.</param>
|
||||||
/// <param name="query">The query.</param>
|
|
||||||
/// <param name="cancellationToken">The cancellation token.</param>
|
/// <param name="cancellationToken">The cancellation token.</param>
|
||||||
|
/// <param name="providerName">Name of the provider.</param>
|
||||||
|
/// <param name="type">The type.</param>
|
||||||
/// <returns>Task{IEnumerable{RemoteImageInfo}}.</returns>
|
/// <returns>Task{IEnumerable{RemoteImageInfo}}.</returns>
|
||||||
Task<IEnumerable<RemoteImageInfo>> GetAvailableRemoteImages(IHasImages item, RemoteImageQuery query, CancellationToken cancellationToken);
|
Task<IEnumerable<RemoteImageInfo>> GetAvailableRemoteImages(IHasImages item, CancellationToken cancellationToken, string providerName = null, ImageType? type = null);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets the image providers.
|
/// Gets the image providers.
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using MediaBrowser.Model.Entities;
|
|
||||||
|
|
||||||
namespace MediaBrowser.Model.Providers
|
namespace MediaBrowser.Model.Providers
|
||||||
{
|
{
|
||||||
@ -26,15 +25,4 @@ namespace MediaBrowser.Model.Providers
|
|||||||
/// <value>The providers.</value>
|
/// <value>The providers.</value>
|
||||||
public List<string> Providers { get; set; }
|
public List<string> Providers { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
public class RemoteImageQuery
|
|
||||||
{
|
|
||||||
public string ProviderName { get; set; }
|
|
||||||
|
|
||||||
public ImageType? ImageType { get; set; }
|
|
||||||
|
|
||||||
public bool IncludeDisabledProviders { get; set; }
|
|
||||||
|
|
||||||
public bool IncludeAllLanguages { get; set; }
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -213,14 +213,7 @@ namespace MediaBrowser.Providers.Manager
|
|||||||
|
|
||||||
_logger.Debug("Running {0} for {1}", provider.GetType().Name, item.Path ?? item.Name);
|
_logger.Debug("Running {0} for {1}", provider.GetType().Name, item.Path ?? item.Name);
|
||||||
|
|
||||||
var images = await _providerManager.GetAvailableRemoteImages(item, new RemoteImageQuery
|
var images = await _providerManager.GetAvailableRemoteImages(item, cancellationToken, provider.Name).ConfigureAwait(false);
|
||||||
{
|
|
||||||
ProviderName = provider.Name,
|
|
||||||
IncludeAllLanguages = false,
|
|
||||||
IncludeDisabledProviders = false,
|
|
||||||
|
|
||||||
}, cancellationToken).ConfigureAwait(false);
|
|
||||||
|
|
||||||
var list = images.ToList();
|
var list = images.ToList();
|
||||||
int minWidth;
|
int minWidth;
|
||||||
|
|
||||||
|
@ -205,31 +205,26 @@ namespace MediaBrowser.Providers.Manager
|
|||||||
/// Gets the available remote images.
|
/// Gets the available remote images.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="item">The item.</param>
|
/// <param name="item">The item.</param>
|
||||||
/// <param name="query">The query.</param>
|
|
||||||
/// <param name="cancellationToken">The cancellation token.</param>
|
/// <param name="cancellationToken">The cancellation token.</param>
|
||||||
|
/// <param name="providerName">Name of the provider.</param>
|
||||||
|
/// <param name="type">The type.</param>
|
||||||
/// <returns>Task{IEnumerable{RemoteImageInfo}}.</returns>
|
/// <returns>Task{IEnumerable{RemoteImageInfo}}.</returns>
|
||||||
public async Task<IEnumerable<RemoteImageInfo>> GetAvailableRemoteImages(IHasImages item, RemoteImageQuery query, CancellationToken cancellationToken)
|
public async Task<IEnumerable<RemoteImageInfo>> GetAvailableRemoteImages(IHasImages item, CancellationToken cancellationToken, string providerName = null, ImageType? type = null)
|
||||||
{
|
{
|
||||||
var providers = GetRemoteImageProviders(item, query.IncludeDisabledProviders);
|
var providers = GetRemoteImageProviders(item, true);
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(query.ProviderName))
|
if (!string.IsNullOrEmpty(providerName))
|
||||||
{
|
{
|
||||||
var providerName = query.ProviderName;
|
|
||||||
|
|
||||||
providers = providers.Where(i => string.Equals(i.Name, providerName, StringComparison.OrdinalIgnoreCase));
|
providers = providers.Where(i => string.Equals(i.Name, providerName, StringComparison.OrdinalIgnoreCase));
|
||||||
}
|
}
|
||||||
|
|
||||||
var preferredLanguage = item.GetPreferredMetadataLanguage();
|
var preferredLanguage = item.GetPreferredMetadataLanguage();
|
||||||
|
|
||||||
var language = query.IncludeAllLanguages ? null : preferredLanguage;
|
var tasks = providers.Select(i => GetImages(item, cancellationToken, i, preferredLanguage, type));
|
||||||
|
|
||||||
var tasks = providers.Select(i => GetImages(item, cancellationToken, i, language, query.ImageType));
|
|
||||||
|
|
||||||
var results = await Task.WhenAll(tasks).ConfigureAwait(false);
|
var results = await Task.WhenAll(tasks).ConfigureAwait(false);
|
||||||
|
|
||||||
var images = results.SelectMany(i => i);
|
return results.SelectMany(i => i);
|
||||||
|
|
||||||
return images;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -249,15 +244,12 @@ namespace MediaBrowser.Providers.Manager
|
|||||||
{
|
{
|
||||||
var result = await i.GetImages(item, type.Value, cancellationToken).ConfigureAwait(false);
|
var result = await i.GetImages(item, type.Value, cancellationToken).ConfigureAwait(false);
|
||||||
|
|
||||||
return string.IsNullOrEmpty(preferredLanguage) ? result :
|
return FilterImages(result, preferredLanguage);
|
||||||
FilterImages(result, preferredLanguage);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
var result = await i.GetAllImages(item, cancellationToken).ConfigureAwait(false);
|
var result = await i.GetAllImages(item, cancellationToken).ConfigureAwait(false);
|
||||||
|
return FilterImages(result, preferredLanguage);
|
||||||
return string.IsNullOrEmpty(preferredLanguage) ? result :
|
|
||||||
FilterImages(result, preferredLanguage);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user