|
|
@ -1,6 +1,5 @@
|
|
|
|
using System;
|
|
|
|
using System;
|
|
|
|
using System.ComponentModel.DataAnnotations;
|
|
|
|
using System.ComponentModel.DataAnnotations;
|
|
|
|
using System.Globalization;
|
|
|
|
|
|
|
|
using System.Linq;
|
|
|
|
using System.Linq;
|
|
|
|
using Jellyfin.Api.Constants;
|
|
|
|
using Jellyfin.Api.Constants;
|
|
|
|
using Jellyfin.Api.Extensions;
|
|
|
|
using Jellyfin.Api.Extensions;
|
|
|
@ -178,8 +177,8 @@ namespace Jellyfin.Api.Controllers
|
|
|
|
[FromQuery, ModelBinder(typeof(CommaDelimitedArrayModelBinder))] SortOrder[] sortOrder,
|
|
|
|
[FromQuery, ModelBinder(typeof(CommaDelimitedArrayModelBinder))] SortOrder[] sortOrder,
|
|
|
|
[FromQuery] Guid? parentId,
|
|
|
|
[FromQuery] Guid? parentId,
|
|
|
|
[FromQuery, ModelBinder(typeof(CommaDelimitedArrayModelBinder))] ItemFields[] fields,
|
|
|
|
[FromQuery, ModelBinder(typeof(CommaDelimitedArrayModelBinder))] ItemFields[] fields,
|
|
|
|
[FromQuery, ModelBinder(typeof(CommaDelimitedArrayModelBinder))] string[] excludeItemTypes,
|
|
|
|
[FromQuery, ModelBinder(typeof(CommaDelimitedArrayModelBinder))] BaseItemKind[] excludeItemTypes,
|
|
|
|
[FromQuery, ModelBinder(typeof(CommaDelimitedArrayModelBinder))] string[] includeItemTypes,
|
|
|
|
[FromQuery, ModelBinder(typeof(CommaDelimitedArrayModelBinder))] BaseItemKind[] includeItemTypes,
|
|
|
|
[FromQuery, ModelBinder(typeof(CommaDelimitedArrayModelBinder))] ItemFilter[] filters,
|
|
|
|
[FromQuery, ModelBinder(typeof(CommaDelimitedArrayModelBinder))] ItemFilter[] filters,
|
|
|
|
[FromQuery] bool? isFavorite,
|
|
|
|
[FromQuery] bool? isFavorite,
|
|
|
|
[FromQuery, ModelBinder(typeof(CommaDelimitedArrayModelBinder))] string[] mediaTypes,
|
|
|
|
[FromQuery, ModelBinder(typeof(CommaDelimitedArrayModelBinder))] string[] mediaTypes,
|
|
|
@ -233,8 +232,8 @@ namespace Jellyfin.Api.Controllers
|
|
|
|
.AddAdditionalDtoOptions(enableImages, enableUserData, imageTypeLimit, enableImageTypes);
|
|
|
|
.AddAdditionalDtoOptions(enableImages, enableUserData, imageTypeLimit, enableImageTypes);
|
|
|
|
|
|
|
|
|
|
|
|
if (includeItemTypes.Length == 1
|
|
|
|
if (includeItemTypes.Length == 1
|
|
|
|
&& (includeItemTypes[0].Equals("Playlist", StringComparison.OrdinalIgnoreCase)
|
|
|
|
&& (includeItemTypes[0] == BaseItemKind.Playlist
|
|
|
|
|| includeItemTypes[0].Equals("BoxSet", StringComparison.OrdinalIgnoreCase)))
|
|
|
|
|| includeItemTypes[0] == BaseItemKind.BoxSet))
|
|
|
|
{
|
|
|
|
{
|
|
|
|
parentId = null;
|
|
|
|
parentId = null;
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -251,7 +250,7 @@ namespace Jellyfin.Api.Controllers
|
|
|
|
&& string.Equals(hasCollectionType.CollectionType, CollectionType.Playlists, StringComparison.OrdinalIgnoreCase))
|
|
|
|
&& string.Equals(hasCollectionType.CollectionType, CollectionType.Playlists, StringComparison.OrdinalIgnoreCase))
|
|
|
|
{
|
|
|
|
{
|
|
|
|
recursive = true;
|
|
|
|
recursive = true;
|
|
|
|
includeItemTypes = new[] { "Playlist" };
|
|
|
|
includeItemTypes = new[] { BaseItemKind.Playlist };
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
var enabledChannels = user!.GetPreferenceValues<Guid>(PreferenceKind.EnabledChannels);
|
|
|
|
var enabledChannels = user!.GetPreferenceValues<Guid>(PreferenceKind.EnabledChannels);
|
|
|
@ -286,8 +285,8 @@ namespace Jellyfin.Api.Controllers
|
|
|
|
{
|
|
|
|
{
|
|
|
|
IsPlayed = isPlayed,
|
|
|
|
IsPlayed = isPlayed,
|
|
|
|
MediaTypes = mediaTypes,
|
|
|
|
MediaTypes = mediaTypes,
|
|
|
|
IncludeItemTypes = includeItemTypes,
|
|
|
|
IncludeItemTypes = RequestHelpers.GetItemTypeStrings(includeItemTypes),
|
|
|
|
ExcludeItemTypes = excludeItemTypes,
|
|
|
|
ExcludeItemTypes = RequestHelpers.GetItemTypeStrings(excludeItemTypes),
|
|
|
|
Recursive = recursive ?? false,
|
|
|
|
Recursive = recursive ?? false,
|
|
|
|
OrderBy = RequestHelpers.GetOrderBy(sortBy, sortOrder),
|
|
|
|
OrderBy = RequestHelpers.GetOrderBy(sortBy, sortOrder),
|
|
|
|
IsFavorite = isFavorite,
|
|
|
|
IsFavorite = isFavorite,
|
|
|
@ -611,8 +610,8 @@ namespace Jellyfin.Api.Controllers
|
|
|
|
[FromQuery, ModelBinder(typeof(CommaDelimitedArrayModelBinder))] SortOrder[] sortOrder,
|
|
|
|
[FromQuery, ModelBinder(typeof(CommaDelimitedArrayModelBinder))] SortOrder[] sortOrder,
|
|
|
|
[FromQuery] Guid? parentId,
|
|
|
|
[FromQuery] Guid? parentId,
|
|
|
|
[FromQuery, ModelBinder(typeof(CommaDelimitedArrayModelBinder))] ItemFields[] fields,
|
|
|
|
[FromQuery, ModelBinder(typeof(CommaDelimitedArrayModelBinder))] ItemFields[] fields,
|
|
|
|
[FromQuery, ModelBinder(typeof(CommaDelimitedArrayModelBinder))] string[] excludeItemTypes,
|
|
|
|
[FromQuery, ModelBinder(typeof(CommaDelimitedArrayModelBinder))] BaseItemKind[] excludeItemTypes,
|
|
|
|
[FromQuery, ModelBinder(typeof(CommaDelimitedArrayModelBinder))] string[] includeItemTypes,
|
|
|
|
[FromQuery, ModelBinder(typeof(CommaDelimitedArrayModelBinder))] BaseItemKind[] includeItemTypes,
|
|
|
|
[FromQuery, ModelBinder(typeof(CommaDelimitedArrayModelBinder))] ItemFilter[] filters,
|
|
|
|
[FromQuery, ModelBinder(typeof(CommaDelimitedArrayModelBinder))] ItemFilter[] filters,
|
|
|
|
[FromQuery] bool? isFavorite,
|
|
|
|
[FromQuery] bool? isFavorite,
|
|
|
|
[FromQuery, ModelBinder(typeof(CommaDelimitedArrayModelBinder))] string[] mediaTypes,
|
|
|
|
[FromQuery, ModelBinder(typeof(CommaDelimitedArrayModelBinder))] string[] mediaTypes,
|
|
|
@ -773,8 +772,8 @@ namespace Jellyfin.Api.Controllers
|
|
|
|
[FromQuery] bool? enableUserData,
|
|
|
|
[FromQuery] bool? enableUserData,
|
|
|
|
[FromQuery] int? imageTypeLimit,
|
|
|
|
[FromQuery] int? imageTypeLimit,
|
|
|
|
[FromQuery, ModelBinder(typeof(CommaDelimitedArrayModelBinder))] ImageType[] enableImageTypes,
|
|
|
|
[FromQuery, ModelBinder(typeof(CommaDelimitedArrayModelBinder))] ImageType[] enableImageTypes,
|
|
|
|
[FromQuery, ModelBinder(typeof(CommaDelimitedArrayModelBinder))] string[] excludeItemTypes,
|
|
|
|
[FromQuery, ModelBinder(typeof(CommaDelimitedArrayModelBinder))] BaseItemKind[] excludeItemTypes,
|
|
|
|
[FromQuery, ModelBinder(typeof(CommaDelimitedArrayModelBinder))] string[] includeItemTypes,
|
|
|
|
[FromQuery, ModelBinder(typeof(CommaDelimitedArrayModelBinder))] BaseItemKind[] includeItemTypes,
|
|
|
|
[FromQuery] bool enableTotalRecordCount = true,
|
|
|
|
[FromQuery] bool enableTotalRecordCount = true,
|
|
|
|
[FromQuery] bool? enableImages = true)
|
|
|
|
[FromQuery] bool? enableImages = true)
|
|
|
|
{
|
|
|
|
{
|
|
|
@ -810,8 +809,8 @@ namespace Jellyfin.Api.Controllers
|
|
|
|
CollapseBoxSetItems = false,
|
|
|
|
CollapseBoxSetItems = false,
|
|
|
|
EnableTotalRecordCount = enableTotalRecordCount,
|
|
|
|
EnableTotalRecordCount = enableTotalRecordCount,
|
|
|
|
AncestorIds = ancestorIds,
|
|
|
|
AncestorIds = ancestorIds,
|
|
|
|
IncludeItemTypes = includeItemTypes,
|
|
|
|
IncludeItemTypes = RequestHelpers.GetItemTypeStrings(includeItemTypes),
|
|
|
|
ExcludeItemTypes = excludeItemTypes,
|
|
|
|
ExcludeItemTypes = RequestHelpers.GetItemTypeStrings(excludeItemTypes),
|
|
|
|
SearchTerm = searchTerm
|
|
|
|
SearchTerm = searchTerm
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|