Use Guid for adjacentTo API parameter
This commit is contained in:
parent
c7edf8b565
commit
0f91244239
|
@ -159,7 +159,7 @@ namespace Jellyfin.Api.Controllers
|
|||
[FromQuery] bool? hasSubtitles,
|
||||
[FromQuery] bool? hasSpecialFeature,
|
||||
[FromQuery] bool? hasTrailer,
|
||||
[FromQuery] string? adjacentTo,
|
||||
[FromQuery] Guid? adjacentTo,
|
||||
[FromQuery] int? parentIndexNumber,
|
||||
[FromQuery] bool? hasParentalRating,
|
||||
[FromQuery] bool? isHd,
|
||||
|
@ -614,7 +614,7 @@ namespace Jellyfin.Api.Controllers
|
|||
[FromQuery] bool? hasSubtitles,
|
||||
[FromQuery] bool? hasSpecialFeature,
|
||||
[FromQuery] bool? hasTrailer,
|
||||
[FromQuery] string? adjacentTo,
|
||||
[FromQuery] Guid? adjacentTo,
|
||||
[FromQuery] int? parentIndexNumber,
|
||||
[FromQuery] bool? hasParentalRating,
|
||||
[FromQuery] bool? isHd,
|
||||
|
|
|
@ -126,7 +126,7 @@ namespace Jellyfin.Api.Controllers
|
|||
[FromQuery] bool? hasSubtitles,
|
||||
[FromQuery] bool? hasSpecialFeature,
|
||||
[FromQuery] bool? hasTrailer,
|
||||
[FromQuery] string? adjacentTo,
|
||||
[FromQuery] Guid? adjacentTo,
|
||||
[FromQuery] int? parentIndexNumber,
|
||||
[FromQuery] bool? hasParentalRating,
|
||||
[FromQuery] bool? isHd,
|
||||
|
|
|
@ -206,7 +206,7 @@ namespace Jellyfin.Api.Controllers
|
|||
[FromQuery] int? season,
|
||||
[FromQuery] Guid? seasonId,
|
||||
[FromQuery] bool? isMissing,
|
||||
[FromQuery] string? adjacentTo,
|
||||
[FromQuery] Guid? adjacentTo,
|
||||
[FromQuery] Guid? startItemId,
|
||||
[FromQuery] int? startIndex,
|
||||
[FromQuery] int? limit,
|
||||
|
@ -278,9 +278,9 @@ namespace Jellyfin.Api.Controllers
|
|||
}
|
||||
|
||||
// This must be the last filter
|
||||
if (!string.IsNullOrEmpty(adjacentTo))
|
||||
if (adjacentTo.HasValue)
|
||||
{
|
||||
episodes = UserViewBuilder.FilterForAdjacency(episodes, adjacentTo).ToList();
|
||||
episodes = UserViewBuilder.FilterForAdjacency(episodes, adjacentTo.Value).ToList();
|
||||
}
|
||||
|
||||
if (string.Equals(sortBy, ItemSortBy.Random, StringComparison.OrdinalIgnoreCase))
|
||||
|
@ -326,7 +326,7 @@ namespace Jellyfin.Api.Controllers
|
|||
[FromQuery, ModelBinder(typeof(CommaDelimitedArrayModelBinder))] ItemFields[] fields,
|
||||
[FromQuery] bool? isSpecialSeason,
|
||||
[FromQuery] bool? isMissing,
|
||||
[FromQuery] string? adjacentTo,
|
||||
[FromQuery] Guid? adjacentTo,
|
||||
[FromQuery] bool? enableImages,
|
||||
[FromQuery] int? imageTypeLimit,
|
||||
[FromQuery, ModelBinder(typeof(CommaDelimitedArrayModelBinder))] ImageType[] enableImageTypes,
|
||||
|
|
|
@ -860,7 +860,7 @@ namespace MediaBrowser.Controller.Entities
|
|||
return true;
|
||||
}
|
||||
|
||||
if (!string.IsNullOrEmpty(query.AdjacentTo))
|
||||
if (query.AdjacentTo.HasValue)
|
||||
{
|
||||
Logger.LogDebug("Query requires post-filtering due to AdjacentTo");
|
||||
return true;
|
||||
|
@ -1029,9 +1029,9 @@ namespace MediaBrowser.Controller.Entities
|
|||
#pragma warning restore CA1309
|
||||
|
||||
// This must be the last filter
|
||||
if (!string.IsNullOrEmpty(query.AdjacentTo))
|
||||
if (query.AdjacentTo.HasValue)
|
||||
{
|
||||
items = UserViewBuilder.FilterForAdjacency(items.ToList(), query.AdjacentTo);
|
||||
items = UserViewBuilder.FilterForAdjacency(items.ToList(), query.AdjacentTo.Value);
|
||||
}
|
||||
|
||||
return UserViewBuilder.SortAndPage(items, null, query, LibraryManager, enableSorting);
|
||||
|
|
|
@ -129,7 +129,7 @@ namespace MediaBrowser.Controller.Entities
|
|||
|
||||
public Guid[] ExcludeItemIds { get; set; }
|
||||
|
||||
public string? AdjacentTo { get; set; }
|
||||
public Guid? AdjacentTo { get; set; }
|
||||
|
||||
public string[] PersonTypes { get; set; }
|
||||
|
||||
|
|
|
@ -433,9 +433,9 @@ namespace MediaBrowser.Controller.Entities
|
|||
var user = query.User;
|
||||
|
||||
// This must be the last filter
|
||||
if (!string.IsNullOrEmpty(query.AdjacentTo))
|
||||
if (query.AdjacentTo.HasValue)
|
||||
{
|
||||
items = FilterForAdjacency(items.ToList(), query.AdjacentTo);
|
||||
items = FilterForAdjacency(items.ToList(), query.AdjacentTo.Value);
|
||||
}
|
||||
|
||||
return SortAndPage(items, totalRecordLimit, query, libraryManager, true);
|
||||
|
@ -985,10 +985,9 @@ namespace MediaBrowser.Controller.Entities
|
|||
return _userViewManager.GetUserSubView(parent.Id, type, localizationKey, sortName);
|
||||
}
|
||||
|
||||
public static IEnumerable<BaseItem> FilterForAdjacency(List<BaseItem> list, string adjacentToId)
|
||||
public static IEnumerable<BaseItem> FilterForAdjacency(List<BaseItem> list, Guid adjacentTo)
|
||||
{
|
||||
var adjacentToIdGuid = new Guid(adjacentToId);
|
||||
var adjacentToItem = list.FirstOrDefault(i => i.Id.Equals(adjacentToIdGuid));
|
||||
var adjacentToItem = list.FirstOrDefault(i => i.Id.Equals(adjacentTo));
|
||||
|
||||
var index = list.IndexOf(adjacentToItem);
|
||||
|
||||
|
@ -1005,7 +1004,7 @@ namespace MediaBrowser.Controller.Entities
|
|||
nextId = list[index + 1].Id;
|
||||
}
|
||||
|
||||
return list.Where(i => i.Id.Equals(previousId) || i.Id.Equals(nextId) || i.Id.Equals(adjacentToIdGuid));
|
||||
return list.Where(i => i.Id.Equals(previousId) || i.Id.Equals(nextId) || i.Id.Equals(adjacentTo));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user