| module.exports = async function (page, url) { | |
| return new Promise(async (resolve, reject) => { | |
| const timeout = setTimeout(() => reject(new Error("Timeout Cloudflare Bypass")), 30000); | |
| try { | |
| await page.goto(url, { waitUntil: "domcontentloaded" }); | |
| let clearanceCookie = null; | |
| const checkInterval = setInterval(async () => { | |
| const cookies = await page.cookies(); | |
| const cf = cookies.find(c => c.name === 'cf_clearance'); | |
| if (cf) { | |
| clearanceCookie = cf.value; | |
| clearInterval(checkInterval); | |
| clearTimeout(timeout); | |
| const userAgent = await page.evaluate(() => navigator.userAgent); | |
| resolve({ | |
| cookie: clearanceCookie, | |
| userAgent: userAgent, | |
| cookies_full: cookies | |
| }); | |
| } | |
| }, 1000); | |
| } catch (e) { | |
| clearTimeout(timeout); | |
| reject(e); | |
| } | |
| }); | |
| }; |