diff --git a/html/src/app.js b/html/src/app.js index e84b415e..788661af 100644 --- a/html/src/app.js +++ b/html/src/app.js @@ -2010,6 +2010,7 @@ speechSynthesis.getVoices(); $online_for: Date.now(), $travelingToTime: Date.now(), $offline_for: '', + $active_for: '', $isVRCPlus: false, $isModerator: false, $isTroll: false, @@ -9488,6 +9489,7 @@ speechSynthesis.getVoices(); ) { ctx.ref.$online_for = ''; ctx.ref.$offline_for = Date.now(); + ctx.ref.$active_for = ''; var ts = Date.now(); var time = ts - $location_at; var worldName = await this.getWorldName(location); @@ -9513,6 +9515,7 @@ speechSynthesis.getVoices(); ctx.ref.$location_at = Date.now(); ctx.ref.$online_for = Date.now(); ctx.ref.$offline_for = ''; + ctx.ref.$active_for = ''; var worldName = await this.getWorldName(newRef.location); var groupName = await this.getGroupName(location); var feed = { @@ -9528,6 +9531,9 @@ speechSynthesis.getVoices(); this.addFeed(feed); database.addOnlineOfflineToDatabase(feed); } + if (newState === 'active') { + ctx.ref.$active_for = Date.now(); + } } if (ctx.state === 'online') { if (ctx.isVIP) { @@ -9646,18 +9652,33 @@ speechSynthesis.getVoices(); // ascending var compareByName = function (a, b) { + if (typeof a.name !== 'string' || typeof b.name !== 'string') { + return 0; + } return a.name.localeCompare(b.name); }; // ascending var compareByDisplayName = function (a, b) { + if ( + typeof a.displayName !== 'string' || + typeof b.displayName !== 'string' + ) { + return 0; + } return a.displayName.localeCompare(b.displayName); }; // descending var compareByUpdatedAt = function (a, b) { - var A = String(a.updated_at).toUpperCase(); - var B = String(b.updated_at).toUpperCase(); + if ( + typeof a.updated_at !== 'string' || + typeof b.updated_at !== 'string' + ) { + return 0; + } + var A = a.updated_at.toUpperCase(); + var B = b.updated_at.toUpperCase(); if (A < B) { return 1; } @@ -9669,8 +9690,14 @@ speechSynthesis.getVoices(); // descending var compareByCreatedAt = function (a, b) { - var A = String(a.created_at).toUpperCase(); - var B = String(b.created_at).toUpperCase(); + if ( + typeof a.created_at !== 'string' || + typeof b.created_at !== 'string' + ) { + return 0; + } + var A = a.created_at.toUpperCase(); + var B = b.created_at.toUpperCase(); if (A < B) { return 1; } @@ -12996,7 +13023,8 @@ speechSynthesis.getVoices(); for (var unityPackage of unityPackages) { if ( unityPackage.variant && - unityPackage.variant !== 'standard' + unityPackage.variant !== 'standard' && + unityPackage.variant !== 'security' ) { continue; } @@ -18276,7 +18304,8 @@ speechSynthesis.getVoices(); for (var unityPackage of unityPackages) { if ( unityPackage.variant && - unityPackage.variant !== 'standard' + unityPackage.variant !== 'standard' && + unityPackage.variant !== 'security' ) { continue; } @@ -18916,7 +18945,11 @@ speechSynthesis.getVoices(); var bundleSizes = []; for (let i = ref.unityPackages.length - 1; i > -1; i--) { var unityPackage = ref.unityPackages[i]; - if (unityPackage.variant && unityPackage.variant !== 'standard') { + if ( + unityPackage.variant && + unityPackage.variant !== 'standard' && + unityPackage.variant !== 'security' + ) { continue; } if (!this.compareUnityVersion(unityPackage.unitySortNumber)) { @@ -20030,7 +20063,8 @@ speechSynthesis.getVoices(); for (var unityPackage of ref.unityPackages) { if ( unityPackage.variant && - unityPackage.variant !== 'standard' + unityPackage.variant !== 'standard' && + unityPackage.variant !== 'security' ) { continue; } @@ -21889,6 +21923,8 @@ speechSynthesis.getVoices(); $app.methods.userOnlineFor = function (ctx) { if (ctx.ref.state === 'online' && ctx.ref.$online_for) { return Date.now() - ctx.ref.$online_for; + } else if (ctx.ref.state === 'active' && ctx.ref.$active_for) { + return Date.now() - ctx.ref.$active_for; } else if (ctx.ref.$offline_for) { return Date.now() - ctx.ref.$offline_for; } @@ -21898,6 +21934,8 @@ speechSynthesis.getVoices(); $app.methods.userOnlineForTimestamp = function (ctx) { if (ctx.ref.state === 'online' && ctx.ref.$online_for) { return ctx.ref.$online_for; + } else if (ctx.ref.state === 'active' && ctx.ref.$active_for) { + return ctx.ref.$active_for; } else if (ctx.ref.$offline_for) { return ctx.ref.$offline_for; } @@ -22863,6 +22901,9 @@ speechSynthesis.getVoices(); }; $app.methods.sortAlphabetically = function (a, b, field) { + if (!a[field] || !b[field]) { + return 0; + } return a[field].toLowerCase().localeCompare(b[field].toLowerCase()); }; @@ -24623,7 +24664,11 @@ speechSynthesis.getVoices(); var assetUrl = ''; for (var i = ref.unityPackages.length - 1; i > -1; i--) { var unityPackage = ref.unityPackages[i]; - if (unityPackage.variant && unityPackage.variant !== 'standard') { + if ( + unityPackage.variant && + unityPackage.variant !== 'standard' && + unityPackage.variant !== 'security' + ) { continue; } if ( @@ -24789,7 +24834,11 @@ speechSynthesis.getVoices(); var assetUrl = ''; for (var i = ref.unityPackages.length - 1; i > -1; i--) { var unityPackage = ref.unityPackages[i]; - if (unityPackage.variant && unityPackage.variant !== 'standard') { + if ( + unityPackage.variant && + unityPackage.variant !== 'standard' && + unityPackage.variant !== 'security' + ) { continue; } if ( @@ -24912,7 +24961,8 @@ speechSynthesis.getVoices(); var unityPackage = unityPackages[i]; if ( unityPackage.variant && - unityPackage.variant !== 'standard' + unityPackage.variant !== 'standard' && + unityPackage.variant !== 'security' ) { continue; } @@ -31990,7 +32040,11 @@ speechSynthesis.getVoices(); var assetUrl = ''; for (let i = D.ref.unityPackages.length - 1; i > -1; i--) { var unityPackage = D.ref.unityPackages[i]; - if (unityPackage.variant && unityPackage.variant !== 'standard') { + if ( + unityPackage.variant && + unityPackage.variant !== 'standard' && + unityPackage.variant !== 'security' + ) { continue; } if (