XORE21 commited on
Commit
c092763
·
verified ·
1 Parent(s): 097870f

Update index.js

Browse files
Files changed (1) hide show
  1. index.js +27 -43
index.js CHANGED
@@ -49,10 +49,10 @@ async function handleCloudflare(page, url) {
49
 
50
  try {
51
  console.log(`[Cloudflare] Navigating to ${url}`);
52
-
53
  let cookieFoundTime = 0;
54
  let finalCookieValue = "";
55
- let hasReloadedAfterCookie = false;
56
 
57
  page.on('response', async resp => {
58
  try {
@@ -64,8 +64,7 @@ async function handleCloudflare(page, url) {
64
  if (cookieStr.includes('cf_clearance')) {
65
  if (cookieFoundTime === 0) {
66
  cookieFoundTime = Date.now();
67
- console.log(`[Cloudflare] 🔥 FAST DETECT: cf_clearance found! Waiting for page redirect...`);
68
-
69
  const match = cookieStr.match(/cf_clearance=([^;]+)/);
70
  if (match) finalCookieValue = match[1];
71
  }
@@ -75,10 +74,7 @@ async function handleCloudflare(page, url) {
75
  });
76
 
77
  await page.bringToFront();
78
- await page.goto(url, { waitUntil: "domcontentloaded", timeout: 90000 });
79
-
80
- let reloadCount = 0;
81
- let startTime = Date.now();
82
 
83
  const loop = setInterval(async () => {
84
  try {
@@ -88,10 +84,10 @@ async function handleCloudflare(page, url) {
88
  const cookies = await page.cookies();
89
 
90
  const cfCookie = cookies.find(c => c.name === 'cf_clearance');
91
- if (cfCookie && cookieFoundTime === 0) {
92
- cookieFoundTime = Date.now();
93
- finalCookieValue = cfCookie.value;
94
- console.log(`[Cloudflare] Cookie found in storage. Waiting for page redirect...`);
95
  }
96
 
97
  const isChallengePage = title.includes("Just a moment") ||
@@ -101,51 +97,39 @@ async function handleCloudflare(page, url) {
101
  if (!isChallengePage) {
102
  clearInterval(loop);
103
  clearTimeout(timeout);
104
-
105
  const ua = await page.evaluate(() => navigator.userAgent);
106
  console.log(`[Cloudflare] Success! Page Title: ${title}`);
107
-
108
  resolve({
109
  status: "success",
110
  userAgent: ua,
111
  cookies_full: cookies,
112
- cookie: cfCookie ? cfCookie.value : finalCookieValue,
113
  title: title
114
  });
115
  return;
116
  }
117
 
118
- if (cookieFoundTime > 0) {
119
- const timeSinceCookie = currentTime - cookieFoundTime;
 
120
 
121
- if (timeSinceCookie > 5000 && !hasReloadedAfterCookie) {
122
- console.log("[Cloudflare] Have cookie but page stuck. Forcing reload to apply cookie...");
123
- await page.reload({ waitUntil: "domcontentloaded" });
124
- hasReloadedAfterCookie = true;
125
- }
126
-
127
- if (timeSinceCookie > 15000) {
128
- clearInterval(loop);
129
- clearTimeout(timeout);
130
- console.log("[Cloudflare] Success (Force Resolve). Cookie obtained, but page title didn't update.");
131
-
132
- const ua = await page.evaluate(() => navigator.userAgent);
133
- resolve({
134
- status: "success",
135
- userAgent: ua,
136
- cookies_full: cookies,
137
- cookie: cfCookie ? cfCookie.value : finalCookieValue,
138
- title: title
139
- });
140
- return;
141
- }
142
  }
143
 
144
- if (cookieFoundTime === 0 && (currentTime - startTime) > 30000 && reloadCount < 2) {
145
- console.log("[Cloudflare] No cookie yet & stuck. Reloading...");
146
- reloadCount++;
147
- startTime = Date.now();
148
- await page.reload({ waitUntil: "domcontentloaded" });
 
 
 
 
 
 
 
 
149
  return;
150
  }
151
 
 
49
 
50
  try {
51
  console.log(`[Cloudflare] Navigating to ${url}`);
52
+
53
  let cookieFoundTime = 0;
54
  let finalCookieValue = "";
55
+ let hasForcedNavigated = false;
56
 
57
  page.on('response', async resp => {
58
  try {
 
64
  if (cookieStr.includes('cf_clearance')) {
65
  if (cookieFoundTime === 0) {
66
  cookieFoundTime = Date.now();
67
+ console.log(`[Cloudflare] 🔥 FAST DETECT: cf_clearance found via Listener!`);
 
68
  const match = cookieStr.match(/cf_clearance=([^;]+)/);
69
  if (match) finalCookieValue = match[1];
70
  }
 
74
  });
75
 
76
  await page.bringToFront();
77
+ await page.goto(url, { waitUntil: "domcontentloaded", timeout: 60000 });
 
 
 
78
 
79
  const loop = setInterval(async () => {
80
  try {
 
84
  const cookies = await page.cookies();
85
 
86
  const cfCookie = cookies.find(c => c.name === 'cf_clearance');
87
+ if (cfCookie) {
88
+ if (cookieFoundTime === 0) console.log(`[Cloudflare] Cookie found in storage.`);
89
+ cookieFoundTime = cookieFoundTime || Date.now();
90
+ finalCookieValue = cfCookie.value;
91
  }
92
 
93
  const isChallengePage = title.includes("Just a moment") ||
 
97
  if (!isChallengePage) {
98
  clearInterval(loop);
99
  clearTimeout(timeout);
 
100
  const ua = await page.evaluate(() => navigator.userAgent);
101
  console.log(`[Cloudflare] Success! Page Title: ${title}`);
 
102
  resolve({
103
  status: "success",
104
  userAgent: ua,
105
  cookies_full: cookies,
106
+ cookie: finalCookieValue,
107
  title: title
108
  });
109
  return;
110
  }
111
 
112
+ if (cookieFoundTime > 0 && (currentTime - cookieFoundTime) > 5000 && !hasForcedNavigated) {
113
+ console.log("[Cloudflare] Cookie found but stuck in loop. Performing FORCE NAVIGATION...");
114
+ hasForcedNavigated = true;
115
 
116
+ await page.goto(url, { waitUntil: "networkidle0", timeout: 30000 }).catch(e => console.log("Nav error (ignored):", e.message));
117
+ return;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
118
  }
119
 
120
+ if (hasForcedNavigated && (currentTime - cookieFoundTime) > 20000) {
121
+ clearInterval(loop);
122
+ clearTimeout(timeout);
123
+ console.log("[Cloudflare] Giving up waiting for title change. Returning valid cookie anyway.");
124
+
125
+ const ua = await page.evaluate(() => navigator.userAgent);
126
+ resolve({
127
+ status: "success",
128
+ userAgent: ua,
129
+ cookies_full: cookies,
130
+ cookie: finalCookieValue,
131
+ title: title
132
+ });
133
  return;
134
  }
135