mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-04-24 19:14:56 +01:00
add new image params
This commit is contained in:
@@ -89,7 +89,7 @@ namespace MediaBrowser.Api.UserLibrary
|
||||
if (request.UserId.HasValue)
|
||||
{
|
||||
var user = UserManager.GetUserById(request.UserId.Value);
|
||||
|
||||
|
||||
return DtoService.GetBaseItemDto(item, fields.ToList(), user);
|
||||
}
|
||||
|
||||
|
||||
@@ -127,11 +127,11 @@ namespace MediaBrowser.Api.UserLibrary
|
||||
|
||||
}
|
||||
|
||||
var fields = request.GetItemFields().ToList();
|
||||
|
||||
var tuples = ibnItems.Select(i => new Tuple<TItemType, List<BaseItem>>(i, i.GetTaggedItems(libraryItems).ToList()));
|
||||
|
||||
var dtos = tuples.Select(i => GetDto(i.Item1, user, fields, i.Item2));
|
||||
var dtoOptions = request.GetDtoOptions();
|
||||
|
||||
var dtos = tuples.Select(i => GetDto(i.Item1, user, dtoOptions, i.Item2));
|
||||
|
||||
result.Items = dtos.Where(i => i != null).ToArray();
|
||||
|
||||
@@ -332,12 +332,12 @@ namespace MediaBrowser.Api.UserLibrary
|
||||
/// </summary>
|
||||
/// <param name="item">The item.</param>
|
||||
/// <param name="user">The user.</param>
|
||||
/// <param name="fields">The fields.</param>
|
||||
/// <param name="options">The options.</param>
|
||||
/// <param name="libraryItems">The library items.</param>
|
||||
/// <returns>Task{DtoBaseItem}.</returns>
|
||||
private BaseItemDto GetDto(TItemType item, User user, List<ItemFields> fields, List<BaseItem> libraryItems)
|
||||
private BaseItemDto GetDto(TItemType item, User user, DtoOptions options, List<BaseItem> libraryItems)
|
||||
{
|
||||
var dto = DtoService.GetItemByNameDto(item, fields, libraryItems, user);
|
||||
var dto = DtoService.GetItemByNameDto(item, options, libraryItems, user);
|
||||
|
||||
return dto;
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using MediaBrowser.Model.Entities;
|
||||
using MediaBrowser.Model.Dto;
|
||||
using MediaBrowser.Model.Entities;
|
||||
using MediaBrowser.Model.Querying;
|
||||
using ServiceStack;
|
||||
using System;
|
||||
@@ -9,6 +10,11 @@ namespace MediaBrowser.Api.UserLibrary
|
||||
{
|
||||
public abstract class BaseItemsRequest : IHasItemFields
|
||||
{
|
||||
protected BaseItemsRequest()
|
||||
{
|
||||
EnableImages = true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Skips over a given number of items within the results. Use for paging.
|
||||
/// </summary>
|
||||
@@ -116,6 +122,15 @@ namespace MediaBrowser.Api.UserLibrary
|
||||
[ApiMember(Name = "Years", Description = "Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimeted.", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "GET", AllowMultiple = true)]
|
||||
public string Years { get; set; }
|
||||
|
||||
[ApiMember(Name = "EnableImages", Description = "Optional, include image information in output", IsRequired = false, DataType = "boolean", ParameterType = "query", Verb = "GET")]
|
||||
public bool EnableImages { get; set; }
|
||||
|
||||
[ApiMember(Name = "ImageTypeLimit", Description = "Optional, the max number of images to return, per image type", IsRequired = false, DataType = "int", ParameterType = "query", Verb = "GET")]
|
||||
public int? ImageTypeLimit { get; set; }
|
||||
|
||||
[ApiMember(Name = "EnableImageTypes", Description = "Optional. The image types to include in the output.", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "GET")]
|
||||
public string EnableImageTypes { get; set; }
|
||||
|
||||
public string[] GetGenres()
|
||||
{
|
||||
return (Genres ?? string.Empty).Split(new[] { '|' }, StringSplitOptions.RemoveEmptyEntries);
|
||||
@@ -198,5 +213,35 @@ namespace MediaBrowser.Api.UserLibrary
|
||||
|
||||
return val.Split(',');
|
||||
}
|
||||
|
||||
public DtoOptions GetDtoOptions()
|
||||
{
|
||||
var options = new DtoOptions();
|
||||
|
||||
options.Fields = this.GetItemFields().ToList();
|
||||
options.EnableImages = EnableImages;
|
||||
|
||||
if (ImageTypeLimit.HasValue)
|
||||
{
|
||||
options.ImageTypeLimit = ImageTypeLimit.Value;
|
||||
}
|
||||
|
||||
if (string.IsNullOrWhiteSpace(EnableImageTypes))
|
||||
{
|
||||
if (options.EnableImages)
|
||||
{
|
||||
// Get everything
|
||||
options.ImageTypes = Enum.GetNames(typeof(ImageType))
|
||||
.Select(i => (ImageType)Enum.Parse(typeof(ImageType), i, true))
|
||||
.ToList();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
options.ImageTypes = (EnableImageTypes ?? string.Empty).Split(',').Where(i => !string.IsNullOrWhiteSpace(i)).Select(v => (ImageType)Enum.Parse(typeof(ImageType), v, true)).ToList();
|
||||
}
|
||||
|
||||
return options;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -321,15 +321,14 @@ namespace MediaBrowser.Api.UserLibrary
|
||||
var result = await GetItemsToSerialize(request, user, parentItem).ConfigureAwait(false);
|
||||
|
||||
var isFiltered = result.Item2;
|
||||
var dtoOptions = request.GetDtoOptions();
|
||||
|
||||
if (isFiltered)
|
||||
{
|
||||
var currentFields = request.GetItemFields().ToList();
|
||||
|
||||
return new ItemsResult
|
||||
{
|
||||
TotalRecordCount = result.Item1.TotalRecordCount,
|
||||
Items = result.Item1.Items.Select(i => _dtoService.GetBaseItemDto(i, currentFields, user)).ToArray()
|
||||
Items = result.Item1.Items.Select(i => _dtoService.GetBaseItemDto(i, dtoOptions, user)).ToArray()
|
||||
};
|
||||
}
|
||||
|
||||
@@ -363,9 +362,7 @@ namespace MediaBrowser.Api.UserLibrary
|
||||
|
||||
var pagedItems = ApplyPaging(request, itemsArray);
|
||||
|
||||
var fields = request.GetItemFields().ToList();
|
||||
|
||||
var returnItems = pagedItems.Select(i => _dtoService.GetBaseItemDto(i, fields, user)).ToArray();
|
||||
var returnItems = pagedItems.Select(i => _dtoService.GetBaseItemDto(i, dtoOptions, user)).ToArray();
|
||||
|
||||
return new ItemsResult
|
||||
{
|
||||
|
||||
@@ -374,7 +374,7 @@ namespace MediaBrowser.Api.UserLibrary
|
||||
item = i.Item1;
|
||||
childCount = i.Item2.Count;
|
||||
}
|
||||
|
||||
|
||||
var dto = _dtoService.GetBaseItemDto(item, fields, user);
|
||||
|
||||
dto.ChildCount = childCount;
|
||||
|
||||
Reference in New Issue
Block a user