This commit is contained in:
47
index.js
47
index.js
@@ -91,6 +91,7 @@ async function createBrowser(proxyServer = null) {
|
||||
|
||||
const turnstile = require('./endpoints/turnstile')
|
||||
const cloudflare = require('./endpoints/cloudflare')
|
||||
const waitForCookie = require('./endpoints/cookie')
|
||||
|
||||
app.post('/cloudflare', async (req, res) => {
|
||||
const data = req.body
|
||||
@@ -167,6 +168,52 @@ app.post('/cloudflare', async (req, res) => {
|
||||
res.status(result.code ?? 200).json(result)
|
||||
})
|
||||
|
||||
app.post('/cookie', async (req, res) => {
|
||||
const data = req.body
|
||||
if (!data || typeof data.domain !== 'string' || typeof data.cookieName !== 'string') {
|
||||
return res.status(400).json({ message: 'Bad Request: missing or invalid domain/cookieName' })
|
||||
}
|
||||
if (data.user_agent && typeof data.user_agent !== 'string') {
|
||||
return res.status(400).json({ message: 'Bad Request: invalid user_agent' })
|
||||
}
|
||||
if (authToken && data.authToken !== authToken) {
|
||||
return res.status(401).json({ message: 'Unauthorized' })
|
||||
}
|
||||
|
||||
if (global.browserLimit <= 0) {
|
||||
return res.status(429).json({ message: 'Too Many Requests' })
|
||||
}
|
||||
|
||||
global.browserLimit--
|
||||
let result
|
||||
let browser, page
|
||||
|
||||
try {
|
||||
const proxyServer = data.proxy ? `${data.proxy.hostname}:${data.proxy.port}` : null
|
||||
const ctx = await createBrowser(proxyServer)
|
||||
browser = ctx.browser
|
||||
page = ctx.page
|
||||
|
||||
await page.goto('about:blank')
|
||||
if (data.user_agent) {
|
||||
await page.setUserAgent(data.user_agent)
|
||||
}
|
||||
|
||||
result = await waitForCookie(data, page)
|
||||
.then((cookie) => ({ ...cookie }))
|
||||
.catch((err) => ({ code: 500, message: err.message }))
|
||||
} catch (err) {
|
||||
result = { code: 500, message: err.message }
|
||||
} finally {
|
||||
if (browser) {
|
||||
try { await browser.close() } catch {}
|
||||
}
|
||||
global.browserLimit++
|
||||
}
|
||||
|
||||
res.status(result.code ?? 200).json(result)
|
||||
})
|
||||
|
||||
app.use((req, res) => {
|
||||
res.status(404).json({ message: 'Not Found' })
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user