mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-06-12 02:30:23 +01:00
referenced core plugins, fixed some dashboard issues, extracted library manager
This commit is contained in:
@@ -24,14 +24,16 @@ namespace MediaBrowser.Api.UserLibrary
|
||||
/// The _user manager
|
||||
/// </summary>
|
||||
protected readonly IUserManager UserManager;
|
||||
protected readonly ILibraryManager LibraryManager;
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="BaseItemsByNameService{TItemType}" /> class.
|
||||
/// </summary>
|
||||
/// <param name="userManager">The user manager.</param>
|
||||
protected BaseItemsByNameService(IUserManager userManager)
|
||||
protected BaseItemsByNameService(IUserManager userManager, ILibraryManager libraryManager)
|
||||
{
|
||||
UserManager = userManager;
|
||||
LibraryManager = libraryManager;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -43,7 +45,7 @@ namespace MediaBrowser.Api.UserLibrary
|
||||
{
|
||||
var user = UserManager.GetUserById(request.UserId);
|
||||
|
||||
var item = string.IsNullOrEmpty(request.Id) ? user.RootFolder : DtoBuilder.GetItemByClientId(request.Id, UserManager, user.Id);
|
||||
var item = string.IsNullOrEmpty(request.Id) ? user.RootFolder : DtoBuilder.GetItemByClientId(request.Id, UserManager, LibraryManager, user.Id);
|
||||
|
||||
IEnumerable<BaseItem> items;
|
||||
|
||||
@@ -126,7 +128,7 @@ namespace MediaBrowser.Api.UserLibrary
|
||||
return null;
|
||||
}
|
||||
|
||||
var dto = await new DtoBuilder(Logger).GetDtoBaseItem(item, user, fields).ConfigureAwait(false);
|
||||
var dto = await new DtoBuilder(Logger).GetDtoBaseItem(item, user, fields, LibraryManager).ConfigureAwait(false);
|
||||
|
||||
dto.ChildCount = stub.Item2();
|
||||
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
using MediaBrowser.Common.Net;
|
||||
using MediaBrowser.Controller;
|
||||
using MediaBrowser.Controller.Entities;
|
||||
using MediaBrowser.Controller.Entities;
|
||||
using MediaBrowser.Controller.Library;
|
||||
using ServiceStack.ServiceHost;
|
||||
using System;
|
||||
@@ -24,7 +22,8 @@ namespace MediaBrowser.Api.UserLibrary
|
||||
/// </summary>
|
||||
public class GenresService : BaseItemsByNameService<Genre>
|
||||
{
|
||||
public GenresService(IUserManager userManager) : base(userManager)
|
||||
public GenresService(IUserManager userManager, ILibraryManager libraryManager)
|
||||
: base(userManager, libraryManager)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -64,9 +63,7 @@ namespace MediaBrowser.Api.UserLibrary
|
||||
/// <returns>Task{Genre}.</returns>
|
||||
protected override Task<Genre> GetEntity(string name)
|
||||
{
|
||||
var kernel = (Kernel)Kernel;
|
||||
|
||||
return kernel.LibraryManager.GetGenre(name);
|
||||
return LibraryManager.GetGenre(name);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -150,13 +150,19 @@ namespace MediaBrowser.Api.UserLibrary
|
||||
/// </summary>
|
||||
private readonly IUserManager _userManager;
|
||||
|
||||
/// <summary>
|
||||
/// The _library manager
|
||||
/// </summary>
|
||||
private readonly ILibraryManager _libraryManager;
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="ItemsService" /> class.
|
||||
/// </summary>
|
||||
/// <param name="userManager">The user manager.</param>
|
||||
public ItemsService(IUserManager userManager)
|
||||
public ItemsService(IUserManager userManager, ILibraryManager libraryManager)
|
||||
{
|
||||
_userManager = userManager;
|
||||
_libraryManager = libraryManager;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -203,7 +209,7 @@ namespace MediaBrowser.Api.UserLibrary
|
||||
|
||||
var dtoBuilder = new DtoBuilder(Logger);
|
||||
|
||||
var returnItems = await Task.WhenAll(pagedItems.Select(i => dtoBuilder.GetDtoBaseItem(i, user, fields))).ConfigureAwait(false);
|
||||
var returnItems = await Task.WhenAll(pagedItems.Select(i => dtoBuilder.GetDtoBaseItem(i, user, fields, _libraryManager))).ConfigureAwait(false);
|
||||
|
||||
return new ItemsResult
|
||||
{
|
||||
@@ -221,7 +227,7 @@ namespace MediaBrowser.Api.UserLibrary
|
||||
/// <exception cref="System.InvalidOperationException"></exception>
|
||||
private IEnumerable<BaseItem> GetItemsToSerialize(GetItems request, User user)
|
||||
{
|
||||
var item = string.IsNullOrEmpty(request.ParentId) ? user.RootFolder : DtoBuilder.GetItemByClientId(request.ParentId, _userManager, user.Id);
|
||||
var item = string.IsNullOrEmpty(request.ParentId) ? user.RootFolder : DtoBuilder.GetItemByClientId(request.ParentId, _userManager, _libraryManager, user.Id);
|
||||
|
||||
// Default list type = children
|
||||
|
||||
|
||||
@@ -29,7 +29,8 @@ namespace MediaBrowser.Api.UserLibrary
|
||||
/// </summary>
|
||||
public class PersonsService : BaseItemsByNameService<Person>
|
||||
{
|
||||
public PersonsService(IUserManager userManager) : base(userManager)
|
||||
public PersonsService(IUserManager userManager, ILibraryManager libraryManager)
|
||||
: base(userManager, libraryManager)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -98,9 +99,7 @@ namespace MediaBrowser.Api.UserLibrary
|
||||
/// <returns>Task{Genre}.</returns>
|
||||
protected override Task<Person> GetEntity(string name)
|
||||
{
|
||||
var kernel = (Kernel)Kernel;
|
||||
|
||||
return kernel.LibraryManager.GetPerson(name);
|
||||
return LibraryManager.GetPerson(name);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
using MediaBrowser.Controller;
|
||||
using MediaBrowser.Controller.Entities;
|
||||
using MediaBrowser.Controller.Entities;
|
||||
using MediaBrowser.Controller.Library;
|
||||
using ServiceStack.ServiceHost;
|
||||
using System;
|
||||
@@ -23,8 +22,8 @@ namespace MediaBrowser.Api.UserLibrary
|
||||
/// </summary>
|
||||
public class StudiosService : BaseItemsByNameService<Studio>
|
||||
{
|
||||
public StudiosService(IUserManager userManager)
|
||||
: base(userManager)
|
||||
public StudiosService(IUserManager userManager, ILibraryManager libraryManager)
|
||||
: base(userManager, libraryManager)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -64,9 +63,7 @@ namespace MediaBrowser.Api.UserLibrary
|
||||
/// <returns>Task{Studio}.</returns>
|
||||
protected override Task<Studio> GetEntity(string name)
|
||||
{
|
||||
var kernel = (Kernel)Kernel;
|
||||
|
||||
return kernel.LibraryManager.GetStudio(name);
|
||||
return LibraryManager.GetStudio(name);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -316,13 +316,15 @@ namespace MediaBrowser.Api.UserLibrary
|
||||
/// The _user manager
|
||||
/// </summary>
|
||||
private readonly IUserManager _userManager;
|
||||
|
||||
private readonly ILibraryManager _libraryManager;
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="UserLibraryService" /> class.
|
||||
/// </summary>
|
||||
/// <param name="jsonSerializer">The json serializer.</param>
|
||||
/// <exception cref="System.ArgumentNullException">jsonSerializer</exception>
|
||||
public UserLibraryService(IJsonSerializer jsonSerializer, IUserManager userManager)
|
||||
public UserLibraryService(IJsonSerializer jsonSerializer, IUserManager userManager, ILibraryManager libraryManager)
|
||||
: base()
|
||||
{
|
||||
if (jsonSerializer == null)
|
||||
@@ -332,6 +334,7 @@ namespace MediaBrowser.Api.UserLibrary
|
||||
|
||||
_jsonSerializer = jsonSerializer;
|
||||
_userManager = userManager;
|
||||
_libraryManager = libraryManager;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -343,7 +346,7 @@ namespace MediaBrowser.Api.UserLibrary
|
||||
{
|
||||
var user = _userManager.GetUserById(request.UserId);
|
||||
|
||||
var item = DtoBuilder.GetItemByClientId(request.Id, _userManager, user.Id);
|
||||
var item = DtoBuilder.GetItemByClientId(request.Id, _userManager, _libraryManager, user.Id);
|
||||
|
||||
// Get everything
|
||||
var fields = Enum.GetNames(typeof(ItemFields)).Select(i => (ItemFields)Enum.Parse(typeof(ItemFields), i, true)).ToList();
|
||||
@@ -352,7 +355,7 @@ namespace MediaBrowser.Api.UserLibrary
|
||||
|
||||
var dtoBuilder = new DtoBuilder(Logger);
|
||||
|
||||
var items = movie.SpecialFeatures.Select(i => dtoBuilder.GetDtoBaseItem(item, user, fields)).AsParallel().Select(t => t.Result).ToList();
|
||||
var items = movie.SpecialFeatures.Select(i => dtoBuilder.GetDtoBaseItem(item, user, fields, _libraryManager)).AsParallel().Select(t => t.Result).ToList();
|
||||
|
||||
return ToOptimizedResult(items);
|
||||
}
|
||||
@@ -366,14 +369,14 @@ namespace MediaBrowser.Api.UserLibrary
|
||||
{
|
||||
var user = _userManager.GetUserById(request.UserId);
|
||||
|
||||
var item = DtoBuilder.GetItemByClientId(request.Id, _userManager, user.Id);
|
||||
var item = DtoBuilder.GetItemByClientId(request.Id, _userManager, _libraryManager, user.Id);
|
||||
|
||||
// Get everything
|
||||
var fields = Enum.GetNames(typeof(ItemFields)).Select(i => (ItemFields)Enum.Parse(typeof(ItemFields), i, true)).ToList();
|
||||
|
||||
var dtoBuilder = new DtoBuilder(Logger);
|
||||
|
||||
var items = item.LocalTrailers.Select(i => dtoBuilder.GetDtoBaseItem(item, user, fields)).AsParallel().Select(t => t.Result).ToList();
|
||||
var items = item.LocalTrailers.Select(i => dtoBuilder.GetDtoBaseItem(item, user, fields, _libraryManager)).AsParallel().Select(t => t.Result).ToList();
|
||||
|
||||
return ToOptimizedResult(items);
|
||||
}
|
||||
@@ -387,14 +390,14 @@ namespace MediaBrowser.Api.UserLibrary
|
||||
{
|
||||
var user = _userManager.GetUserById(request.UserId);
|
||||
|
||||
var item = string.IsNullOrEmpty(request.Id) ? user.RootFolder : DtoBuilder.GetItemByClientId(request.Id, _userManager, user.Id);
|
||||
var item = string.IsNullOrEmpty(request.Id) ? user.RootFolder : DtoBuilder.GetItemByClientId(request.Id, _userManager, _libraryManager, user.Id);
|
||||
|
||||
// Get everything
|
||||
var fields = Enum.GetNames(typeof(ItemFields)).Select(i => (ItemFields)Enum.Parse(typeof(ItemFields), i, true)).ToList();
|
||||
|
||||
var dtoBuilder = new DtoBuilder(Logger);
|
||||
|
||||
var result = dtoBuilder.GetDtoBaseItem(item, user, fields).Result;
|
||||
var result = dtoBuilder.GetDtoBaseItem(item, user, fields, _libraryManager).Result;
|
||||
|
||||
return ToOptimizedResult(result);
|
||||
}
|
||||
@@ -410,7 +413,7 @@ namespace MediaBrowser.Api.UserLibrary
|
||||
|
||||
var user = _userManager.GetUserById(request.UserId);
|
||||
|
||||
var item = DtoBuilder.GetItemByClientId(request.Id, _userManager, user.Id);
|
||||
var item = DtoBuilder.GetItemByClientId(request.Id, _userManager, _libraryManager, user.Id);
|
||||
|
||||
var result = kernel.IntroProviders.SelectMany(i => i.GetIntros(item, user));
|
||||
|
||||
@@ -429,15 +432,13 @@ namespace MediaBrowser.Api.UserLibrary
|
||||
var userId = new Guid(pathInfo.GetArgumentValue<string>(1));
|
||||
var itemId = pathInfo.GetArgumentValue<string>(3);
|
||||
|
||||
var kernel = (Kernel)Kernel;
|
||||
|
||||
var user = _userManager.GetUserById(userId);
|
||||
|
||||
var item = (Folder)DtoBuilder.GetItemByClientId(itemId, _userManager, user.Id);
|
||||
var item = (Folder)DtoBuilder.GetItemByClientId(itemId, _userManager, _libraryManager, user.Id);
|
||||
|
||||
var displayPreferences = _jsonSerializer.DeserializeFromStream<DisplayPreferences>(request.RequestStream);
|
||||
|
||||
var task = kernel.LibraryManager.SaveDisplayPreferencesForFolder(user, item, displayPreferences);
|
||||
var task = _libraryManager.SaveDisplayPreferencesForFolder(user, item, displayPreferences);
|
||||
|
||||
Task.WaitAll(task);
|
||||
}
|
||||
@@ -450,7 +451,7 @@ namespace MediaBrowser.Api.UserLibrary
|
||||
{
|
||||
var user = _userManager.GetUserById(request.UserId);
|
||||
|
||||
var item = (Folder)DtoBuilder.GetItemByClientId(request.Id, _userManager, user.Id);
|
||||
var item = (Folder)DtoBuilder.GetItemByClientId(request.Id, _userManager, _libraryManager, user.Id);
|
||||
|
||||
// Get the user data for this item
|
||||
var data = item.GetUserData(user, true);
|
||||
@@ -471,7 +472,7 @@ namespace MediaBrowser.Api.UserLibrary
|
||||
{
|
||||
var user = _userManager.GetUserById(request.UserId);
|
||||
|
||||
var item = (Folder)DtoBuilder.GetItemByClientId(request.Id, _userManager, user.Id);
|
||||
var item = (Folder)DtoBuilder.GetItemByClientId(request.Id, _userManager, _libraryManager, user.Id);
|
||||
|
||||
// Get the user data for this item
|
||||
var data = item.GetUserData(user, true);
|
||||
@@ -492,7 +493,7 @@ namespace MediaBrowser.Api.UserLibrary
|
||||
{
|
||||
var user = _userManager.GetUserById(request.UserId);
|
||||
|
||||
var item = (Folder)DtoBuilder.GetItemByClientId(request.Id, _userManager, user.Id);
|
||||
var item = (Folder)DtoBuilder.GetItemByClientId(request.Id, _userManager, _libraryManager, user.Id);
|
||||
|
||||
// Get the user data for this item
|
||||
var data = item.GetUserData(user, true);
|
||||
@@ -512,7 +513,7 @@ namespace MediaBrowser.Api.UserLibrary
|
||||
{
|
||||
var user = _userManager.GetUserById(request.UserId);
|
||||
|
||||
var item = (Folder)DtoBuilder.GetItemByClientId(request.Id, _userManager, user.Id);
|
||||
var item = (Folder)DtoBuilder.GetItemByClientId(request.Id, _userManager, _libraryManager, user.Id);
|
||||
|
||||
// Get the user data for this item
|
||||
var data = item.GetUserData(user, true);
|
||||
@@ -545,7 +546,7 @@ namespace MediaBrowser.Api.UserLibrary
|
||||
{
|
||||
var user = _userManager.GetUserById(request.UserId);
|
||||
|
||||
var item = DtoBuilder.GetItemByClientId(request.Id, _userManager, user.Id);
|
||||
var item = DtoBuilder.GetItemByClientId(request.Id, _userManager, _libraryManager, user.Id);
|
||||
|
||||
_userManager.OnPlaybackStart(user, item, ClientType.Other, string.Empty);
|
||||
}
|
||||
@@ -558,7 +559,7 @@ namespace MediaBrowser.Api.UserLibrary
|
||||
{
|
||||
var user = _userManager.GetUserById(request.UserId);
|
||||
|
||||
var item = DtoBuilder.GetItemByClientId(request.Id, _userManager, user.Id);
|
||||
var item = DtoBuilder.GetItemByClientId(request.Id, _userManager, _libraryManager, user.Id);
|
||||
|
||||
var task = _userManager.OnPlaybackProgress(user, item, request.PositionTicks, ClientType.Other, string.Empty);
|
||||
|
||||
@@ -573,7 +574,7 @@ namespace MediaBrowser.Api.UserLibrary
|
||||
{
|
||||
var user = _userManager.GetUserById(request.UserId);
|
||||
|
||||
var item = DtoBuilder.GetItemByClientId(request.Id, _userManager, user.Id);
|
||||
var item = DtoBuilder.GetItemByClientId(request.Id, _userManager, _libraryManager, user.Id);
|
||||
|
||||
var task = _userManager.OnPlaybackStopped(user, item, request.PositionTicks, ClientType.Other, string.Empty);
|
||||
|
||||
@@ -602,7 +603,7 @@ namespace MediaBrowser.Api.UserLibrary
|
||||
/// <returns>Task.</returns>
|
||||
private Task UpdatePlayedStatus(User user, string itemId, bool wasPlayed)
|
||||
{
|
||||
var item = DtoBuilder.GetItemByClientId(itemId, _userManager, user.Id);
|
||||
var item = DtoBuilder.GetItemByClientId(itemId, _userManager, _libraryManager, user.Id);
|
||||
|
||||
return item.SetPlayedStatus(user, wasPlayed, _userManager);
|
||||
}
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
using MediaBrowser.Common.Net;
|
||||
using MediaBrowser.Controller;
|
||||
using MediaBrowser.Controller.Entities;
|
||||
using MediaBrowser.Controller.Entities;
|
||||
using MediaBrowser.Controller.Library;
|
||||
using ServiceStack.ServiceHost;
|
||||
using System;
|
||||
@@ -29,8 +27,9 @@ namespace MediaBrowser.Api.UserLibrary
|
||||
/// The us culture
|
||||
/// </summary>
|
||||
private static readonly CultureInfo UsCulture = new CultureInfo("en-US");
|
||||
|
||||
public YearsService(IUserManager userManager) : base(userManager)
|
||||
|
||||
public YearsService(IUserManager userManager, ILibraryManager libraryManager)
|
||||
: base(userManager, libraryManager)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -70,9 +69,7 @@ namespace MediaBrowser.Api.UserLibrary
|
||||
/// <returns>Task{Studio}.</returns>
|
||||
protected override Task<Year> GetEntity(string name)
|
||||
{
|
||||
var kernel = (Kernel)Kernel;
|
||||
|
||||
return kernel.LibraryManager.GetYear(int.Parse(name, UsCulture));
|
||||
return LibraryManager.GetYear(int.Parse(name, UsCulture));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user