From e182b4f2c2e89ad076416c84b096bfd10bc32ec1 Mon Sep 17 00:00:00 2001 From: Natsumi Date: Sun, 10 Aug 2025 22:54:31 +1200 Subject: [PATCH] Fix cache size and switch to using fileAnalysis for bundle sizes --- Dotnet/AssetBundleManager.cs | 20 ++-- Dotnet/Update.cs | 3 +- src/api/avatar.js | 6 +- .../dialogs/AvatarDialog/AvatarDialog.vue | 79 +------------ .../dialogs/WorldDialog/WorldDialog.vue | 11 ++ src/service/database/gameLog.js | 2 +- src/shared/utils/common.js | 107 ++++++++++-------- src/stores/avatar.js | 13 ++- src/stores/world.js | 11 +- 9 files changed, 102 insertions(+), 150 deletions(-) diff --git a/Dotnet/AssetBundleManager.cs b/Dotnet/AssetBundleManager.cs index 1fb6048d..2aa61089 100644 --- a/Dotnet/AssetBundleManager.cs +++ b/Dotnet/AssetBundleManager.cs @@ -28,16 +28,14 @@ namespace VRCX public string GetAssetId(string id, string variant = "") { - using (var sha256 = SHA256.Create()) + using var sha256 = SHA256.Create(); + var hash = sha256.ComputeHash(Encoding.UTF8.GetBytes(id + variant)); + var idHex = new StringBuilder(hash.Length * 2); + foreach (var b in hash) { - byte[] hash = sha256.ComputeHash(Encoding.UTF8.GetBytes(id + variant)); - StringBuilder idHex = new StringBuilder(hash.Length * 2); - foreach (byte b in hash) - { - idHex.AppendFormat("{0:x2}", b); - } - return idHex.ToString().ToUpper().Substring(0, 16); + idHex.Append($"{b:x2}"); } + return idHex.ToString().ToUpper().Substring(0, 16); } public string GetAssetVersion(int version, int variantVersion = 0) @@ -136,7 +134,7 @@ namespace VRCX if (File.Exists(fileLocation)) { cachePath = fullLocation; - FileInfo data = new FileInfo(fileLocation); + var data = new FileInfo(fileLocation); fileSize = data.Length; } if (File.Exists(Path.Join(fullLocation, "__lock"))) @@ -241,8 +239,8 @@ namespace VRCX public long DirSize(DirectoryInfo d) { long size = 0; - FileInfo[] files = d.GetFiles("*.*", SearchOption.AllDirectories); - foreach (FileInfo file in files) + var files = d.GetFiles("*.*", SearchOption.AllDirectories); + foreach (var file in files) { size += file.Length; } diff --git a/Dotnet/Update.cs b/Dotnet/Update.cs index ff5996b2..735aa207 100644 --- a/Dotnet/Update.cs +++ b/Dotnet/Update.cs @@ -217,8 +217,7 @@ namespace VRCX { var fileHashBytes = await sha256.ComputeHashAsync(stream, _cancellationToken); var fileHashString = Convert.ToHexString(fileHashBytes); - if (!string.IsNullOrEmpty(fileHashString) && - !hashString.Equals(fileHashString, StringComparison.OrdinalIgnoreCase)) + if (!hashString.Equals(fileHashString, StringComparison.OrdinalIgnoreCase)) { logger.Error($"Hash check failed file:{fileHashString} web:{hashString}"); throw new Exception("Hash check failed"); diff --git a/src/api/avatar.js b/src/api/avatar.js index 9e14b8e7..f1622359 100644 --- a/src/api/avatar.js +++ b/src/api/avatar.js @@ -122,7 +122,7 @@ const avatarReq = { /** * @param {{ avatarId: string }} params - * @returns {Promise<{json: T, params}>} + * @returns {Promise<{json: any, params}>} */ deleteImposter(params) { return request(`avatars/${params.avatarId}/impostor`, { @@ -151,7 +151,7 @@ const avatarReq = { }, /** - * @param {{ avatarId: string }} avatarId + * @param {string} avatarId * @returns {Promise<{json: any, params}>} */ getAvatarGallery(avatarId) { @@ -174,7 +174,7 @@ const avatarReq = { }, /** - * @param {{ imageData: string, avatarId: string }} params + * @param {{ imageData: string, avatarId: string }} * @returns {Promise<{json: any, params}>} */ uploadAvatarGalleryImage(imageData, avatarId) { diff --git a/src/components/dialogs/AvatarDialog/AvatarDialog.vue b/src/components/dialogs/AvatarDialog/AvatarDialog.vue index 27348b48..81a70f34 100644 --- a/src/components/dialogs/AvatarDialog/AvatarDialog.vue +++ b/src/components/dialogs/AvatarDialog/AvatarDialog.vue @@ -553,18 +553,6 @@ icon="el-icon-refresh" circle @click="refreshAvatarDialogTreeData"> - - -