mirror of
https://github.com/jellyfin/jellyfin.git
synced 2025-12-21 00:05:26 +03:00
Update to 3.5.2 and .net core 2.1
This commit is contained in:
@@ -7,6 +7,8 @@ using MediaBrowser.Model.Dto;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using MediaBrowser.Model.Services;
|
||||
using System;
|
||||
using MediaBrowser.Model.Querying;
|
||||
|
||||
namespace MediaBrowser.Api.UserLibrary
|
||||
{
|
||||
@@ -36,7 +38,7 @@ namespace MediaBrowser.Api.UserLibrary
|
||||
/// </summary>
|
||||
/// <value>The user id.</value>
|
||||
[ApiMember(Name = "UserId", Description = "Optional. Filter by user id, and attach user data", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "GET")]
|
||||
public string UserId { get; set; }
|
||||
public Guid UserId { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -54,7 +56,7 @@ namespace MediaBrowser.Api.UserLibrary
|
||||
{
|
||||
var result = GetItem(request);
|
||||
|
||||
return ToOptimizedSerializedResultUsingCache(result);
|
||||
return ToOptimizedResult(result);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -67,8 +69,8 @@ namespace MediaBrowser.Api.UserLibrary
|
||||
var dtoOptions = GetDtoOptions(AuthorizationContext, request);
|
||||
|
||||
var item = GetPerson(request.Name, LibraryManager, dtoOptions);
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(request.UserId))
|
||||
|
||||
if (!request.UserId.Equals(Guid.Empty))
|
||||
{
|
||||
var user = UserManager.GetUserById(request.UserId);
|
||||
|
||||
@@ -85,9 +87,7 @@ namespace MediaBrowser.Api.UserLibrary
|
||||
/// <returns>System.Object.</returns>
|
||||
public object Get(GetPersons request)
|
||||
{
|
||||
var result = GetResult(request);
|
||||
|
||||
return ToOptimizedSerializedResultUsingCache(result);
|
||||
return GetResultSlim(request);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -98,48 +98,22 @@ namespace MediaBrowser.Api.UserLibrary
|
||||
/// <returns>IEnumerable{Tuple{System.StringFunc{System.Int32}}}.</returns>
|
||||
protected override IEnumerable<BaseItem> GetAllItems(GetItemsByName request, IList<BaseItem> items)
|
||||
{
|
||||
var inputPersonTypes = ((GetPersons)request).PersonTypes;
|
||||
var personTypes = string.IsNullOrEmpty(inputPersonTypes) ? new string[] { } : inputPersonTypes.Split(',');
|
||||
|
||||
// Either get all people, or all people filtered by a specific person type
|
||||
var allPeople = GetAllPeople(items, personTypes);
|
||||
|
||||
return allPeople
|
||||
.Select(i => i.Name)
|
||||
.DistinctNames()
|
||||
|
||||
.Select(name =>
|
||||
{
|
||||
try
|
||||
{
|
||||
return LibraryManager.GetPerson(name);
|
||||
}
|
||||
catch
|
||||
{
|
||||
return null;
|
||||
// Already logged at lower levels
|
||||
}
|
||||
}
|
||||
|
||||
).Where(i => i != null);
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets all people.
|
||||
/// </summary>
|
||||
/// <param name="itemsList">The items list.</param>
|
||||
/// <param name="personTypes">The person types.</param>
|
||||
/// <returns>IEnumerable{PersonInfo}.</returns>
|
||||
private IEnumerable<PersonInfo> GetAllPeople(IList<BaseItem> itemsList, string[] personTypes)
|
||||
protected override QueryResult<Tuple<BaseItem, ItemCounts>> GetItems(GetItemsByName request, InternalItemsQuery query)
|
||||
{
|
||||
var allIds = itemsList.Select(i => i.Id).ToArray();
|
||||
|
||||
var allPeople = LibraryManager.GetPeople(new InternalPeopleQuery
|
||||
var items = LibraryManager.GetPeopleItems(new InternalPeopleQuery
|
||||
{
|
||||
PersonTypes = personTypes
|
||||
PersonTypes = query.PersonTypes,
|
||||
NameContains = query.NameContains ?? query.SearchTerm
|
||||
});
|
||||
|
||||
return allPeople.Where(i => allIds.Contains(i.ItemId)).OrderBy(p => p.SortOrder ?? int.MaxValue).ThenBy(p => p.Type);
|
||||
return new QueryResult<Tuple<BaseItem, ItemCounts>>
|
||||
{
|
||||
TotalRecordCount = items.Count,
|
||||
Items = items.Take(query.Limit ?? int.MaxValue).Select(i => new Tuple<BaseItem, ItemCounts>(i, new ItemCounts())).ToArray()
|
||||
};
|
||||
}
|
||||
|
||||
public PersonsService(IUserManager userManager, ILibraryManager libraryManager, IUserDataManager userDataRepository, IItemRepository itemRepository, IDtoService dtoService, IAuthorizationContext authorizationContext) : base(userManager, libraryManager, userDataRepository, itemRepository, dtoService, authorizationContext)
|
||||
|
||||
Reference in New Issue
Block a user