lightfinder!

This commit is contained in:
2025-09-24 05:53:22 +09:00
parent 5dce1977c7
commit 9eb2309018
25 changed files with 2497 additions and 26 deletions

View File

@@ -1,5 +1,6 @@
using LightlessSync.API.Data;
using LightlessSync.API.Dto;
using LightlessSync.API.Dto.Group;
using LightlessSync.API.Dto.User;
using Microsoft.AspNetCore.SignalR.Client;
using Microsoft.Extensions.Logging;
@@ -34,6 +35,36 @@ public partial class ApiController
await _lightlessHub!.SendAsync(nameof(UserAddPair), user).ConfigureAwait(false);
}
public async Task TryPairWithContentId(string otherCid, string myCid)
{
if (!IsConnected) return;
await _lightlessHub!.SendAsync(nameof(TryPairWithContentId), otherCid, myCid).ConfigureAwait(false);
}
public async Task SetBroadcastStatus(string hashedCid, bool enabled, GroupBroadcastRequestDto? groupDto = null)
{
CheckConnection();
await _lightlessHub!.InvokeAsync(nameof(SetBroadcastStatus), hashedCid, enabled, groupDto).ConfigureAwait(false);
}
public async Task<BroadcastStatusInfoDto?> IsUserBroadcasting(string hashedCid)
{
CheckConnection();
return await _lightlessHub!.InvokeAsync<BroadcastStatusInfoDto?>(nameof(IsUserBroadcasting), hashedCid).ConfigureAwait(false);
}
public async Task<BroadcastStatusBatchDto> AreUsersBroadcasting(List<string> hashedCids)
{
CheckConnection();
return await _lightlessHub!.InvokeAsync<BroadcastStatusBatchDto>(nameof(AreUsersBroadcasting), hashedCids).ConfigureAwait(false);
}
public async Task<TimeSpan?> GetBroadcastTtl(string hashedCid)
{
CheckConnection();
return await _lightlessHub!.InvokeAsync<TimeSpan?>(nameof(GetBroadcastTtl), hashedCid).ConfigureAwait(false);
}
public async Task UserDelete()
{
CheckConnection();

View File

@@ -1,4 +1,5 @@
using LightlessSync.API.Dto.Group;
using LightlessSync.API.Dto.User;
using LightlessSync.WebAPI.SignalR.Utils;
using Microsoft.AspNetCore.SignalR.Client;
@@ -80,6 +81,11 @@ public partial class ApiController
CheckConnection();
return await _lightlessHub!.InvokeAsync<bool>(nameof(GroupJoinFinalize), passwordedGroup).ConfigureAwait(false);
}
public async Task<GroupJoinInfoDto> GroupJoinHashed(GroupJoinHashedDto dto)
{
CheckConnection();
return await _lightlessHub!.InvokeAsync<GroupJoinInfoDto>("GroupJoinHashed", dto).ConfigureAwait(false);
}
public async Task GroupLeave(GroupDto group)
{
@@ -116,6 +122,18 @@ public partial class ApiController
CheckConnection();
await _lightlessHub!.SendAsync(nameof(GroupUnbanUser), groupPair).ConfigureAwait(false);
}
public async Task<bool> SetGroupBroadcastStatus(GroupBroadcastRequestDto dto)
{
CheckConnection();
return await _lightlessHub!.InvokeAsync<bool>(nameof(SetGroupBroadcastStatus), dto).ConfigureAwait(false);
}
public async Task<List<GroupJoinDto>> GetBroadcastedGroups(List<BroadcastStatusInfoDto> broadcastEntries)
{
CheckConnection();
return await _lightlessHub!.InvokeAsync<List<GroupJoinDto>>(nameof(GetBroadcastedGroups), broadcastEntries)
.ConfigureAwait(false);
}
private void CheckConnection()
{

View File

@@ -100,6 +100,8 @@ public sealed partial class ApiController : DisposableMediatorSubscriberBase, IL
public string UID => _connectionDto?.User.UID ?? string.Empty;
public event Action? OnConnected;
public async Task<bool> CheckClientHealth()
{
return await _lightlessHub!.InvokeAsync<bool>(nameof(CheckClientHealth)).ConfigureAwait(false);
@@ -230,6 +232,7 @@ public sealed partial class ApiController : DisposableMediatorSubscriberBase, IL
_connectionDto = await GetConnectionDto().ConfigureAwait(false);
ServerState = ServerState.Connected;
OnConnected?.Invoke();
var currentClientVer = Assembly.GetExecutingAssembly().GetName().Version!;
@@ -517,6 +520,7 @@ public sealed partial class ApiController : DisposableMediatorSubscriberBase, IL
return;
}
ServerState = ServerState.Connected;
OnConnected?.Invoke();
await LoadIninitialPairsAsync().ConfigureAwait(false);
await LoadOnlinePairsAsync().ConfigureAwait(false);
Mediator.Publish(new ConnectedMessage(_connectionDto));