From e4f3633b899329682bac46d542aaae2c173a553b Mon Sep 17 00:00:00 2001 From: AdingApkgg Date: Sat, 27 Dec 2025 01:02:31 +0800 Subject: [PATCH] Update fetchVndbQuotes to increase results limit and refactor translation logic in VndbPanel for improved API handling - Increased the number of results returned by fetchVndbQuotes from 10 to 25 for better data retrieval. - Refactored translation logic in VndbPanel.vue to execute tasks sequentially, preventing API rate limiting and ensuring accurate game ID checks during translations. --- src/api/search.ts | 2 +- src/components/VndbPanel.vue | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/api/search.ts b/src/api/search.ts index 4ac52dd..92de2d4 100644 --- a/src/api/search.ts +++ b/src/api/search.ts @@ -600,7 +600,7 @@ export async function fetchVndbQuotes(vnId: string): Promise { body: JSON.stringify({ filters: ['vn', '=', ['id', '=', vnId]], fields: 'id, quote, character{id, name, original}', - results: 10, + results: 25, }), }) diff --git a/src/components/VndbPanel.vue b/src/components/VndbPanel.vue index 09a0426..68ecfc3 100644 --- a/src/components/VndbPanel.vue +++ b/src/components/VndbPanel.vue @@ -839,26 +839,26 @@ async function translateAllInternal(silent = false) { const vnIdAtStart = currentVnId.value - // 并行执行所有翻译任务 - const tasks: Promise[] = [] - + // 串行执行翻译任务,避免 API 限流 // 翻译简介 if (searchStore.vndbInfo?.description && !translatedDescription.value) { - tasks.push(translateDescriptionInternal(vnIdAtStart, silent)) + await translateDescriptionInternal(vnIdAtStart, silent) + // 检查游戏是否已切换 + if (currentVnId.value !== vnIdAtStart) { return } } // 翻译标签 if (searchStore.vndbInfo?.tags && searchStore.vndbInfo.tags.length > 0 && translatedTags.value.size === 0) { - tasks.push(translateTagsInternal(vnIdAtStart, silent)) + await translateTagsInternal(vnIdAtStart, silent) + // 检查游戏是否已切换 + if (currentVnId.value !== vnIdAtStart) { return } } // 翻译名言 if (quotes.value.length > 0 && translatedQuotes.value.size === 0) { - tasks.push(translateQuotesInternal(vnIdAtStart, silent)) + await translateQuotesInternal(vnIdAtStart, silent) } - await Promise.all(tasks) - // 如果有任何翻译成功且是当前游戏,播放成功音效 if (!silent && currentVnId.value === vnIdAtStart) { if (translatedDescription.value || translatedTags.value.size > 0 || translatedQuotes.value.size > 0) {