From d3790013c63156b7465518008dacc90493894d31 Mon Sep 17 00:00:00 2001 From: Tsubasahane Date: Sun, 28 Dec 2025 11:00:50 +0800 Subject: [PATCH] Revert "Share Location" This reverts commit 9971b141774c05aff8f4b320e26131d0e47a7068. --- .gitignore | 3 +- LightlessAPI | 2 +- .../Hubs/LightlessHub.ClientStubs.cs | 1 - .../Hubs/LightlessHub.Functions.cs | 5 -- .../Hubs/LightlessHub.Groups.cs | 11 +-- .../Hubs/LightlessHub.Permissions.cs | 4 - .../Hubs/LightlessHub.User.cs | 82 +------------------ .../LightlessSyncServer/Hubs/LightlessHub.cs | 5 -- .../Services/PairService.cs | 2 - .../LightlessSyncServer/Utils/Extensions.cs | 2 - .../Models/GroupPairPreferredPermission.cs | 1 - .../Models/UserPermissionSet.cs | 1 - 12 files changed, 5 insertions(+), 114 deletions(-) diff --git a/.gitignore b/.gitignore index be64548..d9cf9a4 100644 --- a/.gitignore +++ b/.gitignore @@ -350,5 +350,4 @@ MigrationBackup/ .ionide/ # docker run data -Docker/run/data/ -*.idea +Docker/run/data/ \ No newline at end of file diff --git a/LightlessAPI b/LightlessAPI index 9feb0b3..5656600 160000 --- a/LightlessAPI +++ b/LightlessAPI @@ -1 +1 @@ -Subproject commit 9feb0b3c35f67d153607304f93aa3b855d02f445 +Subproject commit 56566003e0e93bba05dcef49fd3ce23c6a204d81 diff --git a/LightlessSyncServer/LightlessSyncServer/Hubs/LightlessHub.ClientStubs.cs b/LightlessSyncServer/LightlessSyncServer/Hubs/LightlessHub.ClientStubs.cs index a880268..4e5afcb 100644 --- a/LightlessSyncServer/LightlessSyncServer/Hubs/LightlessHub.ClientStubs.cs +++ b/LightlessSyncServer/LightlessSyncServer/Hubs/LightlessHub.ClientStubs.cs @@ -40,6 +40,5 @@ namespace LightlessSyncServer.Hubs public Task Client_GposeLobbyPushPoseData(UserData userData, PoseData poseData) => throw new PlatformNotSupportedException("Calling clientside method on server not supported"); public Task Client_GposeLobbyPushWorldData(UserData userData, WorldData worldData) => throw new PlatformNotSupportedException("Calling clientside method on server not supported"); public Task Client_ChatReceive(ChatMessageDto message) => throw new PlatformNotSupportedException("Calling clientside method on server not supported"); - public Task Client_SendLocationToClient(LocationDto locationDto) => throw new PlatformNotSupportedException("Calling clientside method on server not supported"); } } \ No newline at end of file diff --git a/LightlessSyncServer/LightlessSyncServer/Hubs/LightlessHub.Functions.cs b/LightlessSyncServer/LightlessSyncServer/Hubs/LightlessHub.Functions.cs index b2c71fa..a329f8e 100644 --- a/LightlessSyncServer/LightlessSyncServer/Hubs/LightlessHub.Functions.cs +++ b/LightlessSyncServer/LightlessSyncServer/Hubs/LightlessHub.Functions.cs @@ -585,11 +585,6 @@ public partial class LightlessHub return await result.Distinct().AsNoTracking().ToListAsync().ConfigureAwait(false); } - - private async Task CleanVisibilityCacheFromRedis() - { - await _redis.RemoveAsync($"Visibility:{UserUID}", CommandFlags.FireAndForget).ConfigureAwait(false); - } public record UserInfo( string Alias, diff --git a/LightlessSyncServer/LightlessSyncServer/Hubs/LightlessHub.Groups.cs b/LightlessSyncServer/LightlessSyncServer/Hubs/LightlessHub.Groups.cs index 2fa52f2..e5d63df 100644 --- a/LightlessSyncServer/LightlessSyncServer/Hubs/LightlessHub.Groups.cs +++ b/LightlessSyncServer/LightlessSyncServer/Hubs/LightlessHub.Groups.cs @@ -504,7 +504,6 @@ public partial class LightlessHub preferredPermissions.DisableVFX = dto.GroupUserPreferredPermissions.IsDisableVFX(); preferredPermissions.DisableAnimations = dto.GroupUserPreferredPermissions.IsDisableAnimations(); preferredPermissions.IsPaused = false; - preferredPermissions.ShareLocation = dto.GroupUserPreferredPermissions.IsSharingLocation(); DbContext.Update(preferredPermissions); } @@ -550,8 +549,7 @@ public partial class LightlessHub DisableSounds = preferredPermissions.DisableSounds, DisableVFX = preferredPermissions.DisableVFX, IsPaused = preferredPermissions.IsPaused, - Sticky = false, - ShareLocation = preferredPermissions.ShareLocation, + Sticky = false }; await DbContext.Permissions.AddAsync(ownPermissionsToOther).ConfigureAwait(false); @@ -563,7 +561,6 @@ public partial class LightlessHub existingPermissionsOnDb.DisableVFX = preferredPermissions.DisableVFX; existingPermissionsOnDb.IsPaused = false; existingPermissionsOnDb.Sticky = false; - existingPermissionsOnDb.ShareLocation = preferredPermissions.ShareLocation; DbContext.Update(existingPermissionsOnDb); @@ -579,7 +576,6 @@ public partial class LightlessHub ownPermissionsToOther.DisableVFX = preferredPermissions.DisableVFX; ownPermissionsToOther.DisableSounds = preferredPermissions.DisableSounds; ownPermissionsToOther.IsPaused = false; - ownPermissionsToOther.ShareLocation = preferredPermissions.ShareLocation; DbContext.Update(ownPermissionsToOther); } @@ -601,8 +597,7 @@ public partial class LightlessHub DisableSounds = otherPreferred.DisableSounds, DisableVFX = otherPreferred.DisableVFX, IsPaused = otherPreferred.IsPaused, - Sticky = false, - ShareLocation = otherPreferred.ShareLocation, + Sticky = false }; await DbContext.AddAsync(otherExistingPermsOnDb).ConfigureAwait(false); @@ -614,7 +609,6 @@ public partial class LightlessHub otherExistingPermsOnDb.DisableSounds = otherPreferred.DisableSounds; otherExistingPermsOnDb.DisableVFX = otherPreferred.DisableVFX; otherExistingPermsOnDb.IsPaused = otherPreferred.IsPaused; - otherExistingPermsOnDb.ShareLocation = otherPreferred.ShareLocation; DbContext.Update(otherExistingPermsOnDb); } @@ -628,7 +622,6 @@ public partial class LightlessHub otherPermissionToSelf.DisableSounds = otherPreferred.DisableSounds; otherPermissionToSelf.DisableVFX = otherPreferred.DisableVFX; otherPermissionToSelf.IsPaused = otherPreferred.IsPaused; - otherPermissionToSelf.ShareLocation = otherPreferred.ShareLocation; DbContext.Update(otherPermissionToSelf); } diff --git a/LightlessSyncServer/LightlessSyncServer/Hubs/LightlessHub.Permissions.cs b/LightlessSyncServer/LightlessSyncServer/Hubs/LightlessHub.Permissions.cs index 299d0bd..f4b7687 100644 --- a/LightlessSyncServer/LightlessSyncServer/Hubs/LightlessHub.Permissions.cs +++ b/LightlessSyncServer/LightlessSyncServer/Hubs/LightlessHub.Permissions.cs @@ -66,7 +66,6 @@ public partial class LightlessHub prevPermissions.DisableSounds = newPerm.IsDisableSounds(); prevPermissions.DisableVFX = newPerm.IsDisableVFX(); prevPermissions.Sticky = newPerm.IsSticky() || setSticky; - prevPermissions.ShareLocation = newPerm.IsSharingLocation(); DbContext.Update(prevPermissions); // send updated data to pair @@ -113,7 +112,6 @@ public partial class LightlessHub groupPreferredPermissions.DisableAnimations = group.Value.IsDisableAnimations(); groupPreferredPermissions.IsPaused = group.Value.IsPaused(); groupPreferredPermissions.DisableVFX = group.Value.IsDisableVFX(); - groupPreferredPermissions.ShareLocation = group.Value.IsSharingLocation(); var nonStickyPairs = allUsers.Where(u => !u.Value.OwnPermissions.Sticky).ToList(); var affectedGroupPairs = nonStickyPairs.Where(u => u.Value.GIDs.Contains(group.Key, StringComparer.Ordinal)).ToList(); @@ -128,7 +126,6 @@ public partial class LightlessHub perm.DisableAnimations = groupPreferredPermissions.DisableAnimations; perm.IsPaused = groupPreferredPermissions.IsPaused; perm.DisableVFX = groupPreferredPermissions.DisableVFX; - perm.ShareLocation = groupPreferredPermissions.ShareLocation; } UserPermissions permissions = UserPermissions.NoneSet; @@ -136,7 +133,6 @@ public partial class LightlessHub permissions.SetDisableAnimations(groupPreferredPermissions.DisableAnimations); permissions.SetDisableSounds(groupPreferredPermissions.DisableSounds); permissions.SetDisableVFX(groupPreferredPermissions.DisableVFX); - permissions.SetShareLocation(groupPreferredPermissions.ShareLocation); await Clients.Users(affectedGroupPairs .Select(k => k.Key)) diff --git a/LightlessSyncServer/LightlessSyncServer/Hubs/LightlessHub.User.cs b/LightlessSyncServer/LightlessSyncServer/Hubs/LightlessHub.User.cs index 595555b..e278124 100644 --- a/LightlessSyncServer/LightlessSyncServer/Hubs/LightlessHub.User.cs +++ b/LightlessSyncServer/LightlessSyncServer/Hubs/LightlessHub.User.cs @@ -86,8 +86,7 @@ public partial class LightlessHub DisableSounds = ownDefaultPermissions.DisableIndividualSounds, DisableVFX = ownDefaultPermissions.DisableIndividualVFX, IsPaused = false, - Sticky = true, - ShareLocation = false, + Sticky = true }; var existingDbPerms = await DbContext.Permissions.SingleOrDefaultAsync(u => u.UserUID == UserUID && u.OtherUserUID == otherUser.UID, cancellationToken: RequestAbortedToken).ConfigureAwait(false); @@ -102,7 +101,6 @@ public partial class LightlessHub existingDbPerms.DisableVFX = permissions.DisableVFX; existingDbPerms.IsPaused = false; existingDbPerms.Sticky = true; - existingDbPerms.ShareLocation = permissions.ShareLocation; DbContext.Permissions.Update(existingDbPerms); } @@ -1234,84 +1232,6 @@ public partial class LightlessHub errorMessage = string.Empty; return true; } - - - [Authorize(Policy = "Identified")] - public async Task UpdateLocation(LocationDto dto, bool offline = false) - { - _logger.LogCallInfo(LightlessHubLogger.Args(UserUID,dto)); - if (string.IsNullOrEmpty(dto.user.UID)) - { - _logger.LogCallWarning(LightlessHubLogger.Args("LocationDto with no userinfo :",UserUID, dto)); - return; - } - - if (!string.Equals(UserUID, dto.user.UID, StringComparison.Ordinal)) - { - _logger.LogCallWarning(LightlessHubLogger.Args("LocationDto with another UID :",UserUID, dto)); - return; - } - - var visibilityCacheKey = $"Visibility:{UserUID}"; - - var allUsers = await _redis.GetAsync>(visibilityCacheKey).ConfigureAwait(false); - if (allUsers == null) - { - var permissibleGroupGIDsQuery = DbContext.GroupPairPreferredPermissions.AsNoTracking() - .Where(gpp => gpp.UserUID == dto.user.UID && !gpp.IsPaused && gpp.ShareLocation == true) - .Select(gpp => gpp.GroupGID); - - var groupUserUIDsQuery = DbContext.GroupPairs.AsNoTracking() - .Where(gp => permissibleGroupGIDsQuery.Contains(gp.GroupGID)) - .Select(gp => gp.GroupUserUID); - - var directlySharedUserUIDsQuery = DbContext.Permissions.AsNoTracking() - .Where(p => p.UserUID == dto.user.UID && !p.IsPaused && p.ShareLocation == true) - .Select(p => p.OtherUserUID); - - allUsers = await directlySharedUserUIDsQuery - .Union(groupUserUIDsQuery) - .Distinct() - .ToListAsync().ConfigureAwait(false); - - await _redis.AddAsync( - visibilityCacheKey, - allUsers, - TimeSpan.FromMinutes(30), - StackExchange.Redis.When.Always, - StackExchange.Redis.CommandFlags.FireAndForget - ).ConfigureAwait(false); - } - - var key = $"Location:{UserUID}"; - - if (offline) - { - await _redis.RemoveAsync(key, StackExchange.Redis.CommandFlags.FireAndForget).ConfigureAwait(false); - await Clients.Users(allUsers).Client_SendLocationToClient(dto).ConfigureAwait(false); - } - else - { - var currentLocation = await _redis.GetAsync(key).ConfigureAwait(false); - - await _redis.AddAsync(key, dto).ConfigureAwait(false); - if (allUsers.Count != 0 && currentLocation != dto) - { - await Clients.Users(allUsers).Client_SendLocationToClient(dto).ConfigureAwait(false); - } - } - } - - [Authorize(Policy = "Identified")] - public async Task> RequestAllLocationInfo() - { - _logger.LogCallInfo(); - var uids = DbContext.Permissions.AsNoTracking().Where(x => x.OtherUserUID == UserUID && x.ShareLocation == true) - .Select(x => x.UserUID).ToList(); - var data =await _redis.GetAllAsync(uids.Select(x => $"Location:{x}").ToHashSet(StringComparer.Ordinal)) - .ConfigureAwait(false); - return data.Where(x => x.Value is not null).Select(x => x.Value).ToList(); - } [GeneratedRegex(@"^([a-z0-9_ '+&,\.\-\{\}]+\/)+([a-z0-9_ '+&,\.\-\{\}]+\.[a-z]{3,4})$", RegexOptions.IgnoreCase | RegexOptions.Compiled | RegexOptions.ECMAScript)] private static partial Regex GamePathRegex(); diff --git a/LightlessSyncServer/LightlessSyncServer/Hubs/LightlessHub.cs b/LightlessSyncServer/LightlessSyncServer/Hubs/LightlessHub.cs index 2781d2e..99963d6 100644 --- a/LightlessSyncServer/LightlessSyncServer/Hubs/LightlessHub.cs +++ b/LightlessSyncServer/LightlessSyncServer/Hubs/LightlessHub.cs @@ -16,8 +16,6 @@ using Microsoft.AspNetCore.SignalR; using Microsoft.EntityFrameworkCore; using StackExchange.Redis.Extensions.Core.Abstractions; using System.Collections.Concurrent; -using LightlessSync.API.Dto.CharaData; -using LightlessSync.API.Dto.User; using LightlessSyncServer.Services.Interfaces; namespace LightlessSyncServer.Hubs; @@ -221,9 +219,6 @@ public partial class LightlessHub : Hub, ILightlessHub _lightlessCensus.ClearStatistics(UserUID); await SendOfflineToAllPairedUsers().ConfigureAwait(false); - - await UpdateLocation(new LocationDto(new UserData(UserUID), new LocationInfo()), offline: true).ConfigureAwait(false); - await CleanVisibilityCacheFromRedis().ConfigureAwait(false); DbContext.RemoveRange(DbContext.Files.Where(f => !f.Uploaded && f.UploaderUID == UserUID)); await DbContext.SaveChangesAsync().ConfigureAwait(false); diff --git a/LightlessSyncServer/LightlessSyncServer/Services/PairService.cs b/LightlessSyncServer/LightlessSyncServer/Services/PairService.cs index 27b678b..854472f 100644 --- a/LightlessSyncServer/LightlessSyncServer/Services/PairService.cs +++ b/LightlessSyncServer/LightlessSyncServer/Services/PairService.cs @@ -67,7 +67,6 @@ public class PairService DisableVFX = defaultPerms.DisableIndividualVFX, IsPaused = false, Sticky = true, - ShareLocation = false, }); modified = true; } @@ -89,7 +88,6 @@ public class PairService DisableVFX = defaultPerms.DisableIndividualVFX, IsPaused = false, Sticky = true, - ShareLocation = false, }); modified = true; } diff --git a/LightlessSyncServer/LightlessSyncServer/Utils/Extensions.cs b/LightlessSyncServer/LightlessSyncServer/Utils/Extensions.cs index e9f931d..546cf0c 100644 --- a/LightlessSyncServer/LightlessSyncServer/Utils/Extensions.cs +++ b/LightlessSyncServer/LightlessSyncServer/Utils/Extensions.cs @@ -129,7 +129,6 @@ public static class Extensions permissions.SetDisableSounds(groupPair.DisableSounds); permissions.SetPaused(groupPair.IsPaused); permissions.SetDisableVFX(groupPair.DisableVFX); - permissions.SetShareLocation(groupPair.ShareLocation); return permissions; } @@ -150,7 +149,6 @@ public static class Extensions perm.SetDisableAnimations(permissions.DisableAnimations); perm.SetDisableSounds(permissions.DisableSounds); perm.SetDisableVFX(permissions.DisableVFX); - perm.SetShareLocation(permissions.ShareLocation); if (setSticky) perm.SetSticky(permissions.Sticky); return perm; diff --git a/LightlessSyncServer/LightlessSyncShared/Models/GroupPairPreferredPermission.cs b/LightlessSyncServer/LightlessSyncShared/Models/GroupPairPreferredPermission.cs index 6bebdc4..6946810 100644 --- a/LightlessSyncServer/LightlessSyncShared/Models/GroupPairPreferredPermission.cs +++ b/LightlessSyncServer/LightlessSyncShared/Models/GroupPairPreferredPermission.cs @@ -10,5 +10,4 @@ public class GroupPairPreferredPermission public bool DisableAnimations { get; set; } public bool DisableSounds { get; set; } public bool DisableVFX { get; set; } - public bool ShareLocation { get; set; } } diff --git a/LightlessSyncServer/LightlessSyncShared/Models/UserPermissionSet.cs b/LightlessSyncServer/LightlessSyncShared/Models/UserPermissionSet.cs index 4e1f78f..5a00f3a 100644 --- a/LightlessSyncServer/LightlessSyncShared/Models/UserPermissionSet.cs +++ b/LightlessSyncServer/LightlessSyncShared/Models/UserPermissionSet.cs @@ -15,5 +15,4 @@ public class UserPermissionSet public bool DisableAnimations { get; set; } = false; public bool DisableVFX { get; set; } = false; public bool DisableSounds { get; set; } = false; - public bool ShareLocation { get; set; } = false; }