From b1d7ee5b347e9e06b5b359bffca1e9eb6d77b245 Mon Sep 17 00:00:00 2001 From: cake Date: Fri, 5 Dec 2025 22:01:48 +0100 Subject: [PATCH 1/5] Auto-pruning of syncshell, added metrics for pruning, return of count of users in fullgroupdto. --- LightlessSyncAPI/Dto/Group/GroupFullInfoDto.cs | 3 ++- LightlessSyncAPI/Dto/Group/GroupPruneSettingsDto.cs | 6 ++++++ LightlessSyncAPI/SignalR/ILightlessHub.cs | 2 ++ 3 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 LightlessSyncAPI/Dto/Group/GroupPruneSettingsDto.cs diff --git a/LightlessSyncAPI/Dto/Group/GroupFullInfoDto.cs b/LightlessSyncAPI/Dto/Group/GroupFullInfoDto.cs index 46ad2f6..52516c4 100644 --- a/LightlessSyncAPI/Dto/Group/GroupFullInfoDto.cs +++ b/LightlessSyncAPI/Dto/Group/GroupFullInfoDto.cs @@ -7,8 +7,9 @@ namespace LightlessSync.API.Dto.Group; [MessagePackObject(keyAsPropertyName: true)] public record GroupFullInfoDto(GroupData Group, UserData Owner, GroupPermissions GroupPermissions, GroupUserPreferredPermissions GroupUserPermissions, GroupPairUserInfo GroupUserInfo, - Dictionary GroupPairUserInfos) : GroupInfoDto(Group, Owner, GroupPermissions) + Dictionary GroupPairUserInfos, int GroupUserCount) : GroupInfoDto(Group, Owner, GroupPermissions) { public GroupUserPreferredPermissions GroupUserPermissions { get; set; } = GroupUserPermissions; public GroupPairUserInfo GroupUserInfo { get; set; } = GroupUserInfo; + public int GroupUserCount { get; set; } = GroupUserCount; } \ No newline at end of file diff --git a/LightlessSyncAPI/Dto/Group/GroupPruneSettingsDto.cs b/LightlessSyncAPI/Dto/Group/GroupPruneSettingsDto.cs new file mode 100644 index 0000000..6760c43 --- /dev/null +++ b/LightlessSyncAPI/Dto/Group/GroupPruneSettingsDto.cs @@ -0,0 +1,6 @@ +using LightlessSync.API.Data; + +namespace LightlessSync.API.Dto.Group +{ + public record GroupPruneSettingsDto(GroupData Group, bool AutoPruneEnabled, int AutoPruneDays); +} diff --git a/LightlessSyncAPI/SignalR/ILightlessHub.cs b/LightlessSyncAPI/SignalR/ILightlessHub.cs index 1a2363f..9c05317 100644 --- a/LightlessSyncAPI/SignalR/ILightlessHub.cs +++ b/LightlessSyncAPI/SignalR/ILightlessHub.cs @@ -68,6 +68,8 @@ public interface ILightlessHub Task GroupGetProfile(GroupDto dto); Task GroupSetProfile(GroupProfileDto dto); Task GroupSetUserInfo(GroupPairUserInfoDto groupPair); + Task GroupGetPruneSettings(GroupDto dto); + Task GroupSetPruneSettings(GroupPruneSettingsDto dto); Task> GroupsGetAll(); Task GroupUnbanUser(GroupPairDto groupPair); Task GroupPrune(GroupDto group, int days, bool execute); -- 2.49.1 From 8ea337ab2de8724d941ac96597f414d2149932bc Mon Sep 17 00:00:00 2001 From: cake Date: Sat, 6 Dec 2025 18:02:39 +0100 Subject: [PATCH 2/5] Fixed some problems. --- LightlessSyncAPI/SignalR/ILightlessHub.cs | 24 +++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/LightlessSyncAPI/SignalR/ILightlessHub.cs b/LightlessSyncAPI/SignalR/ILightlessHub.cs index 9c05317..1d635ed 100644 --- a/LightlessSyncAPI/SignalR/ILightlessHub.cs +++ b/LightlessSyncAPI/SignalR/ILightlessHub.cs @@ -8,9 +8,9 @@ using LightlessSync.API.Dto.User; namespace LightlessSync.API.SignalR; -public interface ILightlessHub -{ - const int ApiVersion = 34; +public interface ILightlessHub +{ + const int ApiVersion = 34; const string Path = "/lightless"; Task CheckClientHealth(); @@ -46,9 +46,9 @@ public interface ILightlessHub Task Client_GposeLobbyPushWorldData(UserData userData, WorldData worldData); Task Client_ChatReceive(ChatMessageDto message); - Task GetConnectionDto(); - Task> GetZoneChatChannels(); - Task> GetGroupChatChannels(); + Task GetConnectionDto(); + Task> GetZoneChatChannels(); + Task> GetGroupChatChannels(); Task GroupBanUser(GroupPairDto dto, string reason); Task GroupChangeGroupPermissionState(GroupPermissionDto dto); @@ -68,7 +68,7 @@ public interface ILightlessHub Task GroupGetProfile(GroupDto dto); Task GroupSetProfile(GroupProfileDto dto); Task GroupSetUserInfo(GroupPairUserInfoDto groupPair); - Task GroupGetPruneSettings(GroupDto dto); + Task GroupGetPruneSettings(GroupDto dto); Task GroupSetPruneSettings(GroupPruneSettingsDto dto); Task> GroupsGetAll(); Task GroupUnbanUser(GroupPairDto groupPair); @@ -111,8 +111,8 @@ public interface ILightlessHub Task GposeLobbyPushCharacterData(CharaDataDownloadDto charaDownloadDto); Task GposeLobbyPushPoseData(PoseData poseData); Task GposeLobbyPushWorldData(WorldData worldData); - Task UpdateChatPresence(ChatPresenceUpdateDto presence); - Task SendChatMessage(ChatSendRequestDto request); - Task ReportChatMessage(ChatReportSubmitDto request); - Task ResolveChatParticipant(ChatParticipantResolveRequestDto request); -} + Task UpdateChatPresence(ChatPresenceUpdateDto presence); + Task SendChatMessage(ChatSendRequestDto request); + Task ReportChatMessage(ChatReportSubmitDto request); + Task ResolveChatParticipant(ChatParticipantResolveRequestDto request); +} -- 2.49.1 From efb5a8072b99ba35419ee11225094a099ea304a5 Mon Sep 17 00:00:00 2001 From: cake Date: Sat, 6 Dec 2025 20:16:03 +0100 Subject: [PATCH 3/5] Added MessagePackObject in dto. --- LightlessSyncAPI/Dto/Group/GroupPruneSettingsDto.cs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/LightlessSyncAPI/Dto/Group/GroupPruneSettingsDto.cs b/LightlessSyncAPI/Dto/Group/GroupPruneSettingsDto.cs index 6760c43..2d8bd10 100644 --- a/LightlessSyncAPI/Dto/Group/GroupPruneSettingsDto.cs +++ b/LightlessSyncAPI/Dto/Group/GroupPruneSettingsDto.cs @@ -1,6 +1,7 @@ using LightlessSync.API.Data; +using MessagePack; -namespace LightlessSync.API.Dto.Group -{ - public record GroupPruneSettingsDto(GroupData Group, bool AutoPruneEnabled, int AutoPruneDays); -} +namespace LightlessSync.API.Dto.Group; + +[MessagePackObject(keyAsPropertyName: true)] +public record GroupPruneSettingsDto(GroupData Group, bool AutoPruneEnabled, int AutoPruneDays); -- 2.49.1 From 9b2fea6fa4c3dca49d5e63175705b63a42bf4804 Mon Sep 17 00:00:00 2001 From: cake Date: Sat, 6 Dec 2025 22:58:30 +0100 Subject: [PATCH 4/5] Updated DTO --- LightlessSyncAPI/Dto/Group/GroupPruneSettingsDto.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LightlessSyncAPI/Dto/Group/GroupPruneSettingsDto.cs b/LightlessSyncAPI/Dto/Group/GroupPruneSettingsDto.cs index 2d8bd10..68e5d70 100644 --- a/LightlessSyncAPI/Dto/Group/GroupPruneSettingsDto.cs +++ b/LightlessSyncAPI/Dto/Group/GroupPruneSettingsDto.cs @@ -4,4 +4,4 @@ using MessagePack; namespace LightlessSync.API.Dto.Group; [MessagePackObject(keyAsPropertyName: true)] -public record GroupPruneSettingsDto(GroupData Group, bool AutoPruneEnabled, int AutoPruneDays); +public record GroupPruneSettingsDto(GroupData Group, bool AutoPruneEnabled, int AutoPruneDays) : GroupDto(Group); -- 2.49.1 From 8e7d7bf48912b64ea354c14d8e3b815f7a4fcc24 Mon Sep 17 00:00:00 2001 From: cake Date: Sat, 6 Dec 2025 23:39:24 +0100 Subject: [PATCH 5/5] Revert DTO, Changed messagepackprotocol again. --- LightlessSyncAPI/Dto/Group/GroupPruneSettingsDto.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LightlessSyncAPI/Dto/Group/GroupPruneSettingsDto.cs b/LightlessSyncAPI/Dto/Group/GroupPruneSettingsDto.cs index 68e5d70..d07fd40 100644 --- a/LightlessSyncAPI/Dto/Group/GroupPruneSettingsDto.cs +++ b/LightlessSyncAPI/Dto/Group/GroupPruneSettingsDto.cs @@ -4,4 +4,4 @@ using MessagePack; namespace LightlessSync.API.Dto.Group; [MessagePackObject(keyAsPropertyName: true)] -public record GroupPruneSettingsDto(GroupData Group, bool AutoPruneEnabled, int AutoPruneDays) : GroupDto(Group); +public record GroupPruneSettingsDto(GroupData Group, bool AutoPruneEnabled, int AutoPruneDays); \ No newline at end of file -- 2.49.1