diff --git a/src/browser/BrowserFunc.ts b/src/browser/BrowserFunc.ts index 69a0228..d2e9e77 100644 --- a/src/browser/BrowserFunc.ts +++ b/src/browser/BrowserFunc.ts @@ -97,7 +97,8 @@ export default class BrowserFunc { Referer: `${URLs.bing.origin}/`, Origin: URLs.bing.origin }, - retries: 0 + // flyout 是最后的兜底:网络抖动(如 TLS 握手 EOF)要重试,否则会直接中断整个搜索会话 + retries: 2 }) await this.applyResponseCookies(URLs.bing.rewardsFlyoutUserInfo, response.headers['set-cookie']) diff --git a/src/functions/activities/search/BrowserSearch.ts b/src/functions/activities/search/BrowserSearch.ts index 3e08924..bb2d968 100644 --- a/src/functions/activities/search/BrowserSearch.ts +++ b/src/functions/activities/search/BrowserSearch.ts @@ -118,8 +118,18 @@ export class Search extends BaseActivity { await this.bingSearch(page, query, isMobile) stats.performed++ - await this.bot.browser.func.synchronizeActiveBrowserCookies('SEARCH-COOKIE-CAPTURE') - const gained = await tracker.measure() + // 查分失败(网络抖动)不应中断整个会话:本轮记为未得分,下一次成功的 measure 会把累计增量补算回来 + let gained = 0 + try { + await this.bot.browser.func.synchronizeActiveBrowserCookies('SEARCH-COOKIE-CAPTURE') + gained = await tracker.measure() + } catch (error) { + this.bot.logger.warn( + isMobile, + tracker.context, + `查询积分进度失败,继续下一次搜索 | ${error instanceof Error ? error.message : String(error)}` + ) + } if (gained > 0) { stats.stagnant = 0 stats.totalGained += gained