Spaces:
Sleeping
Sleeping
Update server.js
Browse files
server.js
CHANGED
|
@@ -154,32 +154,35 @@ async function captureGDrivePayloadAndCookie(url, opts = {}) {
|
|
| 154 |
console.log("No custom alert appeared.");
|
| 155 |
}
|
| 156 |
|
|
|
|
| 157 |
const pages = await browser.pages();
|
| 158 |
let finalPage;
|
| 159 |
|
| 160 |
if (pages.length > 1) {
|
|
|
|
| 161 |
finalPage = pages[pages.length - 1];
|
| 162 |
await finalPage.bringToFront();
|
| 163 |
-
await finalPage.waitForTimeout(2000);
|
| 164 |
} else {
|
| 165 |
finalPage = page;
|
| 166 |
}
|
| 167 |
|
| 168 |
-
const finalUrl = finalPage.url();
|
| 169 |
|
| 170 |
-
|
| 171 |
if (finalPage !== page) await finalPage.close();
|
|
|
|
| 172 |
await browser.close();
|
| 173 |
|
| 174 |
return { success: true, url: finalUrl };
|
| 175 |
-
} catch (err) {
|
| 176 |
-
console.error('captureGDrivePayloadAndCookie error:', err);
|
| 177 |
-
if (page) try { await page.close(); } catch {}
|
| 178 |
-
if (browser) try { await browser.close(); } catch {}
|
| 179 |
-
return { success: false, error: String(err.message || err) };
|
| 180 |
-
}
|
| 181 |
-
}
|
| 182 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 183 |
app.get('/api/bypass', async (req, res) => {
|
| 184 |
const { url } = req.query;
|
| 185 |
if (!url) return res.status(400).json({ error: 'URL is required' });
|
|
|
|
| 154 |
console.log("No custom alert appeared.");
|
| 155 |
}
|
| 156 |
|
| 157 |
+
// Detect all pages after clicking
|
| 158 |
const pages = await browser.pages();
|
| 159 |
let finalPage;
|
| 160 |
|
| 161 |
if (pages.length > 1) {
|
| 162 |
+
// Usually the popup is the last page
|
| 163 |
finalPage = pages[pages.length - 1];
|
| 164 |
await finalPage.bringToFront();
|
| 165 |
+
await finalPage.waitForTimeout?.(2000); // Safe optional chaining
|
| 166 |
} else {
|
| 167 |
finalPage = page;
|
| 168 |
}
|
| 169 |
|
| 170 |
+
const finalUrl = finalPage.url(); // Get the URL of the popup or page
|
| 171 |
|
| 172 |
+
// Close pages safely
|
| 173 |
if (finalPage !== page) await finalPage.close();
|
| 174 |
+
await page.close();
|
| 175 |
await browser.close();
|
| 176 |
|
| 177 |
return { success: true, url: finalUrl };
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 178 |
|
| 179 |
+
} catch (err) {
|
| 180 |
+
console.error('captureGDrivePayloadAndCookie error:', err);
|
| 181 |
+
if (page) try { await page.close(); } catch {}
|
| 182 |
+
if (browser) try { await browser.close(); } catch {}
|
| 183 |
+
return { success: false, error: String(err.message || err) };
|
| 184 |
+
}
|
| 185 |
+
}
|
| 186 |
app.get('/api/bypass', async (req, res) => {
|
| 187 |
const { url } = req.query;
|
| 188 |
if (!url) return res.status(400).json({ error: 'URL is required' });
|