Remove ordering items
This commit is contained in:
parent
9bab93262e
commit
1731bf7372
|
@ -5,8 +5,6 @@ using System.Linq;
|
|||
using System.Threading.Tasks;
|
||||
using MediaBrowser.Common;
|
||||
using MediaBrowser.Controller.Channels;
|
||||
using MediaBrowser.Controller.Configuration;
|
||||
using MediaBrowser.Controller.Devices;
|
||||
using MediaBrowser.Controller.Drawing;
|
||||
using MediaBrowser.Controller.Dto;
|
||||
using MediaBrowser.Controller.Entities;
|
||||
|
@ -21,8 +19,6 @@ using MediaBrowser.Controller.Providers;
|
|||
using MediaBrowser.Model.Drawing;
|
||||
using MediaBrowser.Model.Dto;
|
||||
using MediaBrowser.Model.Entities;
|
||||
using MediaBrowser.Model.Extensions;
|
||||
using MediaBrowser.Model.IO;
|
||||
using MediaBrowser.Model.Querying;
|
||||
using Microsoft.Extensions.Logging;
|
||||
|
||||
|
@ -83,15 +79,8 @@ namespace Emby.Server.Implementations.Dto
|
|||
return GetBaseItemDto(item, options, user, owner);
|
||||
}
|
||||
|
||||
public BaseItemDto[] GetBaseItemDtos(List<BaseItem> items, DtoOptions options, User user = null, BaseItem owner = null)
|
||||
{
|
||||
return GetBaseItemDtos(items, items.Count, options, user, owner);
|
||||
}
|
||||
|
||||
public BaseItemDto[] GetBaseItemDtos(BaseItem[] items, DtoOptions options, User user = null, BaseItem owner = null)
|
||||
{
|
||||
return GetBaseItemDtos(items, items.Length, options, user, owner);
|
||||
}
|
||||
public BaseItemDto[] GetBaseItemDtos(IReadOnlyList<BaseItem> items, DtoOptions options, User user = null, BaseItem owner = null)
|
||||
=> GetBaseItemDtos(items, items.Count, options, user, owner);
|
||||
|
||||
public BaseItemDto[] GetBaseItemDtos(IEnumerable<BaseItem> items, int itemCount, DtoOptions options, User user = null, BaseItem owner = null)
|
||||
{
|
||||
|
|
|
@ -1090,7 +1090,7 @@ namespace Emby.Server.Implementations.Session
|
|||
await SendMessageToSession(session, "Play", command, cancellationToken).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
private IList<BaseItem> TranslateItemForPlayback(Guid id, User user)
|
||||
private IEnumerable<BaseItem> TranslateItemForPlayback(Guid id, User user)
|
||||
{
|
||||
var item = _libraryManager.GetItemById(id);
|
||||
|
||||
|
|
|
@ -172,16 +172,9 @@ namespace MediaBrowser.Api
|
|||
|
||||
if (!string.IsNullOrWhiteSpace(hasDtoOptions.EnableImageTypes))
|
||||
{
|
||||
if (string.IsNullOrEmpty(hasDtoOptions.EnableImageTypes))
|
||||
{
|
||||
options.ImageTypes = Array.Empty<ImageType>();
|
||||
}
|
||||
else
|
||||
{
|
||||
options.ImageTypes = hasDtoOptions.EnableImageTypes.Split(new [] { ',' }, StringSplitOptions.RemoveEmptyEntries)
|
||||
.Select(v => (ImageType)Enum.Parse(typeof(ImageType), v, true))
|
||||
.ToArray();
|
||||
}
|
||||
options.ImageTypes = hasDtoOptions.EnableImageTypes.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries)
|
||||
.Select(v => (ImageType)Enum.Parse(typeof(ImageType), v, true))
|
||||
.ToArray();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using MediaBrowser.Controller.Entities;
|
||||
using MediaBrowser.Controller.Library;
|
||||
|
@ -180,7 +181,7 @@ namespace MediaBrowser.Api
|
|||
return ToOptimizedResult(filters);
|
||||
}
|
||||
|
||||
private QueryFiltersLegacy GetFilters(BaseItem[] items)
|
||||
private QueryFiltersLegacy GetFilters(IReadOnlyCollection<BaseItem> items)
|
||||
{
|
||||
var result = new QueryFiltersLegacy();
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using MediaBrowser.Controller.Dto;
|
||||
|
@ -197,29 +198,27 @@ namespace MediaBrowser.Api.UserLibrary
|
|||
request.ParentId = null;
|
||||
}
|
||||
|
||||
var item = string.IsNullOrEmpty(request.ParentId) ?
|
||||
null :
|
||||
_libraryManager.GetItemById(request.ParentId);
|
||||
BaseItem item = null;
|
||||
|
||||
if (!string.IsNullOrEmpty(request.ParentId))
|
||||
{
|
||||
item = _libraryManager.GetItemById(request.ParentId);
|
||||
}
|
||||
|
||||
if (item == null)
|
||||
{
|
||||
item = string.IsNullOrEmpty(request.ParentId) ?
|
||||
user == null ? _libraryManager.RootFolder : _libraryManager.GetUserRootFolder() :
|
||||
_libraryManager.GetItemById(request.ParentId);
|
||||
item = _libraryManager.GetUserRootFolder();
|
||||
}
|
||||
|
||||
// Default list type = children
|
||||
|
||||
var folder = item as Folder;
|
||||
Folder folder = item as Folder;
|
||||
if (folder == null)
|
||||
{
|
||||
folder = user == null ? _libraryManager.RootFolder : _libraryManager.GetUserRootFolder();
|
||||
folder = _libraryManager.GetUserRootFolder();
|
||||
}
|
||||
|
||||
var hasCollectionType = folder as IHasCollectionType;
|
||||
var isPlaylistQuery = (hasCollectionType != null && string.Equals(hasCollectionType.CollectionType, CollectionType.Playlists, StringComparison.OrdinalIgnoreCase));
|
||||
|
||||
if (isPlaylistQuery)
|
||||
if (hasCollectionType != null
|
||||
&& string.Equals(hasCollectionType.CollectionType, CollectionType.Playlists, StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
request.Recursive = true;
|
||||
request.IncludeItemTypes = "Playlist";
|
||||
|
@ -235,20 +234,12 @@ namespace MediaBrowser.Api.UserLibrary
|
|||
};
|
||||
}
|
||||
|
||||
if (request.Recursive || !string.IsNullOrEmpty(request.Ids) || user == null)
|
||||
{
|
||||
return folder.GetItems(GetItemsQuery(request, dtoOptions, user));
|
||||
}
|
||||
|
||||
var userRoot = item as UserRootFolder;
|
||||
|
||||
if (userRoot == null)
|
||||
if (request.Recursive || !string.IsNullOrEmpty(request.Ids) || !(item is UserRootFolder))
|
||||
{
|
||||
return folder.GetItems(GetItemsQuery(request, dtoOptions, user));
|
||||
}
|
||||
|
||||
var itemsArray = folder.GetChildren(user, true).ToArray();
|
||||
|
||||
return new QueryResult<BaseItem>
|
||||
{
|
||||
Items = itemsArray,
|
||||
|
|
|
@ -36,9 +36,7 @@ namespace MediaBrowser.Controller.Dto
|
|||
.ToArray();
|
||||
|
||||
public bool ContainsField(ItemFields field)
|
||||
{
|
||||
return AllItemFields.Contains(field);
|
||||
}
|
||||
=> Fields.Contains(field);
|
||||
|
||||
public DtoOptions(bool allFields)
|
||||
{
|
||||
|
@ -47,15 +45,7 @@ namespace MediaBrowser.Controller.Dto
|
|||
EnableUserData = true;
|
||||
AddCurrentProgram = true;
|
||||
|
||||
if (allFields)
|
||||
{
|
||||
Fields = AllItemFields;
|
||||
}
|
||||
else
|
||||
{
|
||||
Fields = new ItemFields[] { };
|
||||
}
|
||||
|
||||
Fields = allFields ? AllItemFields : Array.Empty<ItemFields>();
|
||||
ImageTypes = AllImageTypes;
|
||||
}
|
||||
|
||||
|
|
|
@ -57,9 +57,7 @@ namespace MediaBrowser.Controller.Dto
|
|||
/// <param name="options">The options.</param>
|
||||
/// <param name="user">The user.</param>
|
||||
/// <param name="owner">The owner.</param>
|
||||
BaseItemDto[] GetBaseItemDtos(BaseItem[] items, DtoOptions options, User user = null, BaseItem owner = null);
|
||||
|
||||
BaseItemDto[] GetBaseItemDtos(List<BaseItem> items, DtoOptions options, User user = null, BaseItem owner = null);
|
||||
BaseItemDto[] GetBaseItemDtos(IReadOnlyList<BaseItem> items, DtoOptions options, User user = null, BaseItem owner = null);
|
||||
|
||||
/// <summary>
|
||||
/// Gets the item by name dto.
|
||||
|
|
|
@ -810,37 +810,19 @@ namespace MediaBrowser.Controller.Entities
|
|||
{
|
||||
if (query.ItemIds.Length > 0)
|
||||
{
|
||||
var result = LibraryManager.GetItemsResult(query);
|
||||
|
||||
if (query.OrderBy.Length == 0)
|
||||
{
|
||||
var ids = query.ItemIds.ToList();
|
||||
|
||||
// Try to preserve order
|
||||
result.Items = result.Items.OrderBy(i => ids.IndexOf(i.Id)).ToArray();
|
||||
}
|
||||
return result;
|
||||
return LibraryManager.GetItemsResult(query);
|
||||
}
|
||||
|
||||
return GetItemsInternal(query);
|
||||
}
|
||||
|
||||
public BaseItem[] GetItemList(InternalItemsQuery query)
|
||||
public IReadOnlyList<BaseItem> GetItemList(InternalItemsQuery query)
|
||||
{
|
||||
query.EnableTotalRecordCount = false;
|
||||
|
||||
if (query.ItemIds.Length > 0)
|
||||
{
|
||||
var result = LibraryManager.GetItemList(query);
|
||||
|
||||
if (query.OrderBy.Length == 0)
|
||||
{
|
||||
var ids = query.ItemIds.ToList();
|
||||
|
||||
// Try to preserve order
|
||||
return result.OrderBy(i => ids.IndexOf(i.Id)).ToArray();
|
||||
}
|
||||
return result.ToArray();
|
||||
return LibraryManager.GetItemList(query);
|
||||
}
|
||||
|
||||
return GetItemsInternal(query).Items;
|
||||
|
|
Loading…
Reference in New Issue
Block a user