修改Whatshub工单的完成数量总计的计算方法
This commit is contained in:
Regular → Executable
Regular → Executable
Regular → Executable
Regular → Executable
Regular → Executable
Regular → Executable
Regular → Executable
Regular → Executable
Regular → Executable
Regular → Executable
@@ -227,17 +227,21 @@ function applyWhatshubPostCfDefaults(antiBot, pageUrl) {
|
||||
}
|
||||
try {
|
||||
const parsed = new URL(pageUrl || '');
|
||||
if (!parsed.hostname.includes('whatshub.cc') || !parsed.pathname.includes('/m/')) {
|
||||
const isWhatshubHost = parsed.hostname.includes('whatshub.cc');
|
||||
const isShortLink = parsed.pathname.includes('/m/');
|
||||
const isLongLink = pageUrl.includes('work-order-sharing');
|
||||
if (!isWhatshubHost || (!isShortLink && !isLongLink)) {
|
||||
return antiBot;
|
||||
}
|
||||
console.log('[CF] Whatshub 短链自动启用 postCfReady 默认配置');
|
||||
console.log('[CF] Whatshub 自动启用 postCfReady 默认配置');
|
||||
return {
|
||||
...antiBot,
|
||||
postCfReadyUrlContains: 'work-order-sharing',
|
||||
postCfReadySelector: '.el-input__inner',
|
||||
postCfReadyTimeoutMs: antiBot.postCfReadyTimeoutMs || 30000,
|
||||
postCfReadyApiUrl: '/api/whatshub-counter/workShare/open/statistics',
|
||||
postCfReadyTimeoutMs: antiBot.postCfReadyTimeoutMs || 60000,
|
||||
postCfSettleMs: antiBot.postCfSettleMs || 500,
|
||||
postCfSpaWaitMs: antiBot.postCfSpaWaitMs || 8000,
|
||||
postCfSpaWaitMs: antiBot.postCfSpaWaitMs || 4000,
|
||||
};
|
||||
} catch (_) {
|
||||
return antiBot;
|
||||
@@ -1187,11 +1191,17 @@ async function runCloudflareWithBusinessGuard(page, antiBot, waitForUrlSettled,
|
||||
cfResult = await handleCloudflareChallengeSafe(page, antiBot, waitForUrlSettled, storedSession);
|
||||
}
|
||||
|
||||
// 短链跨域落地(如 yyk.ink → user.a2c.chat)后,业务域可能仍有 CF
|
||||
// 短链跨域落地(如 yyk.ink → user.a2c.chat、Whatshub /m/ → work-order-sharing)后,业务域可能仍有 CF
|
||||
if (cfResult.success && !(await isCfTrulyComplete(page, antiBot))) {
|
||||
const crossState = await detectCloudflare(page, antiBot);
|
||||
if (crossState.blocked || urlIndicatesCfChallenge(page.url())) {
|
||||
console.log(`[CF] 跨域落地后 CF 未完成,二次过盾 url=${page.url()}`);
|
||||
const isWhatshubLongCf =
|
||||
urlNeedle === 'work-order-sharing' && urlIndicatesCfChallenge(page.url());
|
||||
if (isWhatshubLongCf) {
|
||||
console.log(`[CF] Whatshub 长链二次过盾 url=${page.url()}`);
|
||||
} else {
|
||||
console.log(`[CF] 跨域落地后 CF 未完成,二次过盾 url=${page.url()}`);
|
||||
}
|
||||
page = await maybeEnsureProxy(page);
|
||||
cfResult = await finalizeCfResult(
|
||||
page,
|
||||
|
||||
Reference in New Issue
Block a user