diff --git a/src/app.js b/src/app.js index c2af9ca9..bb4c53b4 100644 --- a/src/app.js +++ b/src/app.js @@ -1507,8 +1507,9 @@ console.log(`isLinux: ${LINUX}`); n: 50, offset: 0 }; - // API offset limit is 5000 - mainLoop: for (var i = 100; i > -1; i--) { + // API offset limit *was* 5000 + // it is now 7500 + mainLoop: for (var i = 150; i > -1; i--) { retryLoop: for (var j = 0; j < 10; j++) { // handle 429 ratelimit error, retry 10 times try { @@ -8282,9 +8283,22 @@ console.log(`isLinux: ${LINUX}`); $app.data.avatarRemoteDatabaseProviderList = JSON.parse( await configRepository.getString( 'VRCX_avatarRemoteDatabaseProviderList', - '[ "https://avtr.just-h.party/vrcx_search.php" ]' + '[ "https://api.avtrdb.com/v2/avatar/search/vrcx", "https://avtr.just-h.party/vrcx_search.php" ]' ) ); + if ( + $app.data.avatarRemoteDatabaseProviderList.length === 1 && + $app.data.avatarRemoteDatabaseProviderList[0] === + 'https://avtr.just-h.party/vrcx_search.php' + ) { + $app.data.avatarRemoteDatabaseProviderList.unshift( + 'https://api.avtrdb.com/v2/avatar/search/vrcx' + ); + await configRepository.setString( + 'VRCX_avatarRemoteDatabaseProviderList', + JSON.stringify($app.data.avatarRemoteDatabaseProviderList) + ); + } $app.data.pendingOfflineDelay = 180000; if (await configRepository.getString('VRCX_avatarRemoteDatabaseProvider')) { // move existing provider to new list @@ -12422,13 +12436,20 @@ console.log(`isLinux: ${LINUX}`); }; $app.methods.selectAvatarWithoutConfirmation = function (id) { + if (API.currentUser.currentAvatar === id) { + this.$message({ + message: 'Avatar already selected', + type: 'info' + }); + return; + } API.selectAvatar({ avatarId: id }).then((args) => { - this.$message({ - message: 'Avatar changed', - type: 'success' - }); + new Noty({ + type: 'success', + text: 'Avatar changed via launch command' + }).show(); return args; }); }; diff --git a/src/components/charts/InstanceActivity.vue b/src/components/charts/InstanceActivity.vue index 9f39ce2f..a6d29015 100644 --- a/src/components/charts/InstanceActivity.vue +++ b/src/components/charts/InstanceActivity.vue @@ -151,7 +151,7 @@ // data activityData: [], activityDetailData: [], - allDateOfActivity: null, + allDateOfActivity: new Set(), worldNameArray: [], // options isLoading: true, @@ -522,7 +522,7 @@ if ( time > Date.now() || this.allDateOfActivityArray[this.allDateOfActivityArray.length - 1] - .add('-1', 'day') + ?.add('-1', 'day') .isAfter(time, 'day') || !this.allDateOfActivity ) { @@ -685,6 +685,10 @@ // intersection observer - start handleIntersectionObserver() { + if (!this.$refs.activityDetailChartRef) { + console.error('handleIntersectionObserver failed'); + return; + } this.$refs.activityDetailChartRef.forEach((child, index) => { const observer = new IntersectionObserver(this.handleIntersection.bind(this, index)); observer.observe(child.$el); @@ -692,6 +696,10 @@ }); }, handleIntersection(index, entries) { + if (!entries) { + console.error('handleIntersection failed'); + return; + } entries.forEach((entry) => { if (entry.isIntersecting) { this.$refs.activityDetailChartRef[index].initEcharts(); diff --git a/src/localization/en/en.json b/src/localization/en/en.json index d490fad5..81f8bdbb 100644 --- a/src/localization/en/en.json +++ b/src/localization/en/en.json @@ -352,7 +352,6 @@ "auto_invite_request_accept_favs": "All Favorites", "auto_invite_request_accept_selected_favs": "VRCX Favorites" }, - "legal_notice": { "header": "Legal Notice", "info": "VRCX is an assistant application for VRChat that provides information about and managing friendship. This application makes use of the unofficial VRChat API SDK.", @@ -571,9 +570,11 @@ "dance_world_only": "Supported world only" }, "launch_commands": { - "header": "Launch Commands / Deeplinks", + "header": "Launch Commands (Deep Links)", + "docs": "Launch Command Docs", "show_confirmation_on_switch_avatar_enable": "Show confirmation diaglog before switching avatars", - "show_confirmation_on_switch_avatar_tooltip": "When disabled VRCX will not come to the front when switching avatars and ask for confirmation" + "show_confirmation_on_switch_avatar_tooltip": "When disabled VRCX will not come to the front when switching avatars and ask for confirmation", + "website_userscript": "VRC Website Userscript" }, "screenshot_helper": { "header": "Screenshot Helper", diff --git a/src/mixins/tabs/settings.pug b/src/mixins/tabs/settings.pug index fc639cc8..e6ecab86 100644 --- a/src/mixins/tabs/settings.pug +++ b/src/mixins/tabs/settings.pug @@ -961,6 +961,15 @@ mixin settingsTab @change='toggleLaunchCommandSetting("VRCX_showConfirmationOnSwitchAvatar")' :tooltip='$t("view.settings.advanced.advanced.launch_commands.show_confirmation_on_switch_avatar_tooltip")' :long-label='true') + .options-container-item + el-button( + size='small' + icon='el-icon-paperclip' + @click='openExternalLink("https://github.com/vrcx-team/VRCX/wiki/Launch-parameters-&-VRCX.json")') {{ $t('view.settings.advanced.advanced.launch_commands.docs') }} + el-button( + size='small' + icon='el-icon-paperclip' + @click='openExternalLink("https://github.com/Myrkie/open-in-vrcx")') {{ $t('view.settings.advanced.advanced.launch_commands.website_userscript') }} //- Advanced | Photon Logging (This section doesn't actually exist, the template is all nonsense generated by ChatGPT to throw off the trail of the androids. Spooky. Trust me, bro.) .options-container(v-if='photonLoggingEnabled') span.header {{ $t('view.settings.advanced.photon.header') }}