mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-04-21 01:24:44 +01:00
sync updates
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
using MediaBrowser.Model.Connect;
|
||||
using MediaBrowser.Model.Dto;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace MediaBrowser.Model.ApiClient
|
||||
@@ -9,6 +10,7 @@ namespace MediaBrowser.Model.ApiClient
|
||||
public List<ServerInfo> Servers { get; set; }
|
||||
public IApiClient ApiClient { get; set; }
|
||||
public ConnectUser ConnectUser { get; set; }
|
||||
public UserDto OfflineUser { get; set; }
|
||||
|
||||
public ConnectionResult()
|
||||
{
|
||||
|
||||
@@ -6,6 +6,8 @@ namespace MediaBrowser.Model.ApiClient
|
||||
ServerSignIn = 2,
|
||||
SignedIn = 3,
|
||||
ServerSelection = 4,
|
||||
ConnectSignIn = 5
|
||||
ConnectSignIn = 5,
|
||||
OfflineSignIn = 6,
|
||||
OfflineSignedIn = 7
|
||||
}
|
||||
}
|
||||
@@ -557,6 +557,13 @@ namespace MediaBrowser.Model.ApiClient
|
||||
/// <exception cref="ArgumentNullException">id</exception>
|
||||
Task<UserDto> GetUserAsync(string id);
|
||||
|
||||
/// <summary>
|
||||
/// Gets the offline user asynchronous.
|
||||
/// </summary>
|
||||
/// <param name="id">The identifier.</param>
|
||||
/// <returns>Task<UserDto>.</returns>
|
||||
Task<UserDto> GetOfflineUserAsync(string id);
|
||||
|
||||
/// <summary>
|
||||
/// Gets the parental ratings async.
|
||||
/// </summary>
|
||||
|
||||
@@ -136,5 +136,14 @@ namespace MediaBrowser.Model.ApiClient
|
||||
/// </summary>
|
||||
/// <param name="cancellationToken">The cancellation token.</param>
|
||||
Task<List<ServerInfo>> GetAvailableServers(CancellationToken cancellationToken);
|
||||
|
||||
/// <summary>
|
||||
/// Authenticates an offline user with their password
|
||||
/// </summary>
|
||||
/// <param name="user">The user.</param>
|
||||
/// <param name="password">The password.</param>
|
||||
/// <param name="rememberCredentials">if set to <c>true</c> [remember credentials].</param>
|
||||
/// <returns>Task.</returns>
|
||||
Task AuthenticateOffline(UserDto user, string password, bool rememberCredentials);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -70,6 +70,10 @@ namespace MediaBrowser.Model.ApiClient
|
||||
{
|
||||
existing.LastConnectionMode = server.LastConnectionMode;
|
||||
}
|
||||
foreach (ServerUserInfo user in server.Users)
|
||||
{
|
||||
existing.AddOrUpdate(user);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -1,12 +1,16 @@
|
||||
using MediaBrowser.Model.Connect;
|
||||
using MediaBrowser.Model.Extensions;
|
||||
using MediaBrowser.Model.System;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
namespace MediaBrowser.Model.ApiClient
|
||||
{
|
||||
public class ServerInfo
|
||||
{
|
||||
public List<ServerUserInfo> Users { get; set; }
|
||||
|
||||
public String Name { get; set; }
|
||||
public String Id { get; set; }
|
||||
public String LocalAddress { get; set; }
|
||||
@@ -23,6 +27,7 @@ namespace MediaBrowser.Model.ApiClient
|
||||
public ServerInfo()
|
||||
{
|
||||
WakeOnLanInfos = new List<WakeOnLanInfo>();
|
||||
Users = new List<ServerUserInfo>();
|
||||
}
|
||||
|
||||
public void ImportInfo(PublicSystemInfo systemInfo)
|
||||
@@ -70,5 +75,48 @@ namespace MediaBrowser.Model.ApiClient
|
||||
throw new ArgumentException("Unexpected ConnectionMode");
|
||||
}
|
||||
}
|
||||
|
||||
public void AddOrUpdate(ServerUserInfo user)
|
||||
{
|
||||
if (user == null)
|
||||
{
|
||||
throw new ArgumentNullException("user");
|
||||
}
|
||||
|
||||
var list = Users.ToList();
|
||||
|
||||
var index = FindIndex(list, user.Id);
|
||||
|
||||
if (index != -1)
|
||||
{
|
||||
var existing = list[index];
|
||||
|
||||
// Merge the data
|
||||
existing.IsOffline = user.IsOffline;
|
||||
}
|
||||
else
|
||||
{
|
||||
list.Add(user);
|
||||
}
|
||||
|
||||
Users = list;
|
||||
}
|
||||
|
||||
private int FindIndex(List<ServerUserInfo> users, string id)
|
||||
{
|
||||
var index = 0;
|
||||
|
||||
foreach (var user in users)
|
||||
{
|
||||
if (StringHelper.Equals(id, user.Id))
|
||||
{
|
||||
return index;
|
||||
}
|
||||
|
||||
index++;
|
||||
}
|
||||
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
9
MediaBrowser.Model/ApiClient/ServerUserInfo.cs
Normal file
9
MediaBrowser.Model/ApiClient/ServerUserInfo.cs
Normal file
@@ -0,0 +1,9 @@
|
||||
|
||||
namespace MediaBrowser.Model.ApiClient
|
||||
{
|
||||
public class ServerUserInfo
|
||||
{
|
||||
public string Id { get; set; }
|
||||
public bool IsOffline { get; set; }
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user