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

Update index.js

Browse files
Files changed (1) hide show
  1. index.js +48 -13
index.js CHANGED
@@ -50,7 +50,10 @@ async function handleCloudflare(page, url) {
50
  try {
51
  console.log(`[Cloudflare] Navigating to ${url}`);
52
 
53
- let gotCfFromListener = false;
 
 
 
54
  page.on('response', async resp => {
55
  try {
56
  const headers = resp.headers();
@@ -59,8 +62,13 @@ async function handleCloudflare(page, url) {
59
  if (setCookie) {
60
  const cookieStr = Array.isArray(setCookie) ? setCookie.join(' ') : setCookie;
61
  if (cookieStr.includes('cf_clearance')) {
62
- gotCfFromListener = true;
63
- console.log(`[Cloudflare] 🔥 FAST DETECT: cf_clearance found in response headers from ${resp.url()}`);
 
 
 
 
 
64
  }
65
  }
66
  } catch(e){}
@@ -80,32 +88,61 @@ async function handleCloudflare(page, url) {
80
  const cookies = await page.cookies();
81
 
82
  const cfCookie = cookies.find(c => c.name === 'cf_clearance');
 
 
 
 
 
83
 
84
  const isChallengePage = title.includes("Just a moment") ||
85
  content.includes("challenge-platform") ||
86
  title.includes("Cloudflare");
87
 
88
- if (!isChallengePage || cfCookie || gotCfFromListener) {
89
  clearInterval(loop);
90
  clearTimeout(timeout);
91
 
92
  const ua = await page.evaluate(() => navigator.userAgent);
93
- const finalCookie = cfCookie ? cfCookie.value : "";
94
-
95
- console.log(`[Cloudflare] Success! (Source: ${cfCookie ? "Cookie Found" : (gotCfFromListener ? "Listener" : "Page Change")})`);
96
 
97
  resolve({
98
  status: "success",
99
  userAgent: ua,
100
  cookies_full: cookies,
101
- cookie: finalCookie,
102
  title: title
103
  });
104
  return;
105
  }
106
 
107
- if ((currentTime - startTime) > 30000 && reloadCount < 2) {
108
- console.log("[Cloudflare] Stuck detected (>30s). Reloading page...");
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
109
  reloadCount++;
110
  startTime = Date.now();
111
  await page.reload({ waitUntil: "domcontentloaded" });
@@ -114,11 +151,9 @@ async function handleCloudflare(page, url) {
114
 
115
  try {
116
  await page.mouse.move(Math.floor(Math.random() * 500), Math.floor(Math.random() * 500));
117
- if (Math.random() > 0.9) await page.click('body').catch(()=>{});
118
  } catch (err) {}
119
 
120
- } catch (e) {
121
- }
122
  }, 1000);
123
 
124
  } catch (e) {
 
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 {
59
  const headers = resp.headers();
 
62
  if (setCookie) {
63
  const cookieStr = Array.isArray(setCookie) ? setCookie.join(' ') : setCookie;
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
+ }
72
  }
73
  }
74
  } catch(e){}
 
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") ||
98
  content.includes("challenge-platform") ||
99
  title.includes("Cloudflare");
100
 
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" });
 
151
 
152
  try {
153
  await page.mouse.move(Math.floor(Math.random() * 500), Math.floor(Math.random() * 500));
 
154
  } catch (err) {}
155
 
156
+ } catch (e) {}
 
157
  }, 1000);
158
 
159
  } catch (e) {