varchallengeTitle=/^(just a moment|attention required|verify|checking your browser|are you human)/i.test(title)
||/access denied|请输入验证码|安全验证/i.test(title);
// Challenge body copy.
// challengeText — 挑战页正文文案。
varchallengeText=/please verify (that )?you are human|verify you are human|unusual traffic from your computer|checking your browser before accessing|enable javascript and cookies to continue|our system has detected unusual traffic|请完成安全验证|进行人机验证/i.test(bodyText);
@@ -106,24 +133,33 @@ async function evaluateBrowserBlock(ws) {
// String scan of raw HTML for challenge/login-wall signals. No DOM, so the
// signals are a subset of the browser probe — enough to catch a Cloudflare
// interstitial or a login redirect on an open site.
//
// Same body-gating principle as the browser probe: challenge title is a
// high-confidence signal (block immediately); challenge body text is gated by
// <p> content length so a cookie-banner phrase on a real article doesn't
// trigger a false positive.
constDIRECT_CHALLENGE_RE=/please verify (that )?you are human|verify you are human|unusual traffic from your computer|checking your browser before accessing|enable javascript and cookies to continue|our system has detected unusual traffic|请完成安全验证|进行人机验证/i;
constDIRECT_CHALLENGE_TITLE_RE=/<title[^>]*>(just a moment|attention required|verify|checking your browser|are you human|access denied|请输入验证码|安全验证)/i;
constDIRECT_CHALLENGE_TITLE_RE=/<title[^>]*>(just a moment|attention required|verify you are human|checking your browser|are you human|access denied|请输入验证码|安全验证)/i;
constDIRECT_LOGIN_CTA_RE=/sign in to (continue|read)|log in to (continue|read)|subscribe to (continue|read|keep)|以继续阅读|登录后查看|订阅后查看|登录以继续|登录后可继续阅读/i;
varchallengeTitle=/^(just a moment|attention required|verify|checking your browser|are you human)/i.test(title)
||/access denied|请输入验证码|安全验证/i.test(title);
// Challenge body copy.
// challengeText — 挑战页正文文案。
varchallengeText=/please verify (that )?you are human|verify you are human|unusual traffic from your computer|checking your browser before accessing|enable javascript and cookies to continue|our system has detected unusual traffic|请完成安全验证|进行人机验证/i.test(bodyText);
@@ -106,24 +133,33 @@ async function evaluateBrowserBlock(ws) {
// String scan of raw HTML for challenge/login-wall signals. No DOM, so the
// signals are a subset of the browser probe — enough to catch a Cloudflare
// interstitial or a login redirect on an open site.
//
// Same body-gating principle as the browser probe: challenge title is a
// high-confidence signal (block immediately); challenge body text is gated by
// <p> content length so a cookie-banner phrase on a real article doesn't
// trigger a false positive.
constDIRECT_CHALLENGE_RE=/please verify (that )?you are human|verify you are human|unusual traffic from your computer|checking your browser before accessing|enable javascript and cookies to continue|our system has detected unusual traffic|请完成安全验证|进行人机验证/i;
constDIRECT_CHALLENGE_TITLE_RE=/<title[^>]*>(just a moment|attention required|verify|checking your browser|are you human|access denied|请输入验证码|安全验证)/i;
constDIRECT_CHALLENGE_TITLE_RE=/<title[^>]*>(just a moment|attention required|verify you are human|checking your browser|are you human|access denied|请输入验证码|安全验证)/i;
constDIRECT_LOGIN_CTA_RE=/sign in to (continue|read)|log in to (continue|read)|subscribe to (continue|read|keep)|以继续阅读|登录后查看|订阅后查看|登录以继续|登录后可继续阅读/i;