mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-05-30 20:38:27 +01:00
add connect linking
This commit is contained in:
63
MediaBrowser.Api/ConnectService.cs
Normal file
63
MediaBrowser.Api/ConnectService.cs
Normal file
@@ -0,0 +1,63 @@
|
||||
using System.Threading.Tasks;
|
||||
using MediaBrowser.Controller.Connect;
|
||||
using MediaBrowser.Controller.Net;
|
||||
using ServiceStack;
|
||||
|
||||
namespace MediaBrowser.Api
|
||||
{
|
||||
[Route("/Users/{Id}/Connect/Info", "GET", Summary = "Gets connect info for a user")]
|
||||
public class GetConnectUserInfo : IReturn<ConnectUserLink>
|
||||
{
|
||||
[ApiMember(Name = "Id", Description = "User Id", IsRequired = true, DataType = "string", ParameterType = "query", Verb = "GET")]
|
||||
public string Id { get; set; }
|
||||
}
|
||||
|
||||
[Route("/Users/{Id}/Connect/Link", "POST", Summary = "Creates a Connect link for a user")]
|
||||
public class CreateConnectLink : IReturn<ConnectUserLink>
|
||||
{
|
||||
[ApiMember(Name = "Id", Description = "User Id", IsRequired = true, DataType = "string", ParameterType = "query", Verb = "POST")]
|
||||
public string Id { get; set; }
|
||||
|
||||
[ApiMember(Name = "ConnectUsername", Description = "Connect username", IsRequired = true, DataType = "string", ParameterType = "query", Verb = "POST")]
|
||||
public string ConnectUsername { get; set; }
|
||||
}
|
||||
|
||||
[Route("/Users/{Id}/Connect/Link", "DELETE", Summary = "Removes a Connect link for a user")]
|
||||
public class DeleteConnectLink : IReturn<ConnectUserLink>
|
||||
{
|
||||
[ApiMember(Name = "Id", Description = "User Id", IsRequired = true, DataType = "string", ParameterType = "query", Verb = "DELETE")]
|
||||
public string Id { get; set; }
|
||||
}
|
||||
|
||||
[Authenticated]
|
||||
public class ConnectService : BaseApiService
|
||||
{
|
||||
private readonly IConnectManager _connectManager;
|
||||
|
||||
public ConnectService(IConnectManager connectManager)
|
||||
{
|
||||
_connectManager = connectManager;
|
||||
}
|
||||
|
||||
public object Get(GetConnectUserInfo request)
|
||||
{
|
||||
var result = _connectManager.GetUserInfo(request.Id);
|
||||
|
||||
return ToOptimizedResult(result);
|
||||
}
|
||||
|
||||
public void Post(CreateConnectLink request)
|
||||
{
|
||||
var task = _connectManager.LinkUser(request.Id, request.ConnectUsername);
|
||||
|
||||
Task.WaitAll(task);
|
||||
}
|
||||
|
||||
public void Delete(DeleteConnectLink request)
|
||||
{
|
||||
var task = _connectManager.RemoveLink(request.Id);
|
||||
|
||||
Task.WaitAll(task);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -195,7 +195,7 @@ namespace MediaBrowser.Api.Library
|
||||
}
|
||||
else
|
||||
{
|
||||
var user = _userManager.GetUserById(new Guid(request.UserId));
|
||||
var user = _userManager.GetUserById(request.UserId);
|
||||
|
||||
var result = _libraryManager.GetVirtualFolders(user).OrderBy(i => i.Name).ToList();
|
||||
|
||||
|
||||
@@ -321,7 +321,7 @@ namespace MediaBrowser.Api.LiveTv
|
||||
|
||||
public async Task<object> Get(GetChannel request)
|
||||
{
|
||||
var user = string.IsNullOrEmpty(request.UserId) ? null : _userManager.GetUserById(new Guid(request.UserId));
|
||||
var user = string.IsNullOrEmpty(request.UserId) ? null : _userManager.GetUserById(request.UserId);
|
||||
|
||||
var result = await _liveTvManager.GetChannel(request.Id, CancellationToken.None, user).ConfigureAwait(false);
|
||||
|
||||
@@ -406,7 +406,7 @@ namespace MediaBrowser.Api.LiveTv
|
||||
|
||||
public async Task<object> Get(GetRecording request)
|
||||
{
|
||||
var user = string.IsNullOrEmpty(request.UserId) ? null : _userManager.GetUserById(new Guid(request.UserId));
|
||||
var user = string.IsNullOrEmpty(request.UserId) ? null : _userManager.GetUserById(request.UserId);
|
||||
|
||||
var result = await _liveTvManager.GetRecording(request.Id, CancellationToken.None, user).ConfigureAwait(false);
|
||||
|
||||
@@ -514,7 +514,7 @@ namespace MediaBrowser.Api.LiveTv
|
||||
|
||||
public async Task<object> Get(GetProgram request)
|
||||
{
|
||||
var user = string.IsNullOrEmpty(request.UserId) ? null : _userManager.GetUserById(new Guid(request.UserId));
|
||||
var user = string.IsNullOrEmpty(request.UserId) ? null : _userManager.GetUserById(request.UserId);
|
||||
|
||||
var result = await _liveTvManager.GetProgram(request.Id, CancellationToken.None, user).ConfigureAwait(false);
|
||||
|
||||
|
||||
@@ -70,6 +70,7 @@
|
||||
</Compile>
|
||||
<Compile Include="BrandingService.cs" />
|
||||
<Compile Include="ChannelService.cs" />
|
||||
<Compile Include="ConnectService.cs" />
|
||||
<Compile Include="Dlna\DlnaServerService.cs" />
|
||||
<Compile Include="Dlna\DlnaService.cs" />
|
||||
<Compile Include="Library\ChapterService.cs" />
|
||||
|
||||
@@ -784,7 +784,7 @@ namespace MediaBrowser.Api.Playback
|
||||
get
|
||||
{
|
||||
#if __MonoCS__
|
||||
return false;
|
||||
return true;
|
||||
#endif
|
||||
|
||||
try
|
||||
|
||||
@@ -137,7 +137,7 @@ namespace MediaBrowser.Api
|
||||
public object Get(GetPlaylistItems request)
|
||||
{
|
||||
var playlist = (Playlist)_libraryManager.GetItemById(request.Id);
|
||||
var user = !string.IsNullOrWhiteSpace(request.UserId) ? _userManager.GetUserById(new Guid(request.UserId)) : null;
|
||||
var user = !string.IsNullOrWhiteSpace(request.UserId) ? _userManager.GetUserById(request.UserId) : null;
|
||||
|
||||
var items = playlist.GetManageableItems().ToArray();
|
||||
|
||||
|
||||
@@ -282,7 +282,7 @@ namespace MediaBrowser.Api
|
||||
UserId = request.UserId
|
||||
});
|
||||
|
||||
var user = _userManager.GetUserById(new Guid(request.UserId));
|
||||
var user = _userManager.GetUserById(request.UserId);
|
||||
|
||||
var fields = request.GetItemFields().ToList();
|
||||
|
||||
|
||||
@@ -245,7 +245,7 @@ namespace MediaBrowser.Api.UserLibrary
|
||||
|
||||
foreach (var additionalUserInfo in session.AdditionalUsers)
|
||||
{
|
||||
var additionalUser = _userManager.GetUserById(new Guid(additionalUserInfo.UserId));
|
||||
var additionalUser = _userManager.GetUserById(additionalUserInfo.UserId);
|
||||
|
||||
await UpdatePlayedStatus(additionalUser, request.Id, true, datePlayed).ConfigureAwait(false);
|
||||
}
|
||||
@@ -353,7 +353,7 @@ namespace MediaBrowser.Api.UserLibrary
|
||||
|
||||
foreach (var additionalUserInfo in session.AdditionalUsers)
|
||||
{
|
||||
var additionalUser = _userManager.GetUserById(new Guid(additionalUserInfo.UserId));
|
||||
var additionalUser = _userManager.GetUserById(additionalUserInfo.UserId);
|
||||
|
||||
await UpdatePlayedStatus(additionalUser, request.Id, false, null).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
@@ -402,7 +402,7 @@ namespace MediaBrowser.Api.UserLibrary
|
||||
|
||||
public async Task<object> Get(GetUserViews request)
|
||||
{
|
||||
var user = _userManager.GetUserById(new Guid(request.UserId));
|
||||
var user = _userManager.GetUserById(request.UserId);
|
||||
|
||||
// Get everything
|
||||
var fields = Enum.GetNames(typeof(ItemFields)).Select(i => (ItemFields)Enum.Parse(typeof(ItemFields), i, true)).ToList();
|
||||
|
||||
Reference in New Issue
Block a user