Spaces:
Paused
Paused
File size: 1,514 Bytes
d6811c6 7f1d6c3 d6811c6 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | // server.js
const express = require('express');
const bodyParser = require('body-parser');
const { getTurnstileToken, logger } = require('./turnstile-solver'); // import file yang sudah kamu buat
const app = express();
const PORT = process.env.PORT || 7860;
app.use(bodyParser.json());
app.get('/', (req, res) => {
res.json({ status: 'ok', message: 'Turnstile Solver API running' });
});
app.post('/solve', async (req, res) => {
const {
url,
sitekey,
action = null,
cdata = null,
debug = false,
headless = true,
useragent = null,
browserType = 'chromium'
} = req.body;
if (!url || !sitekey) {
return res.status(400).json({
error: 'Missing required parameters: url, sitekey'
});
}
try {
logger.info(`Received solve request for ${url}`);
const result = await getTurnstileToken(url, sitekey, action, cdata, debug, headless, useragent, browserType);
if (!result) {
return res.status(500).json({
status: 'failure',
reason: 'Failed to solve Turnstile'
});
}
res.json(result);
} catch (error) {
logger.error(`Error solving Turnstile: ${error.message}`);
res.status(500).json({
status: 'error',
message: error.message
});
}
});
app.listen(PORT, () => {
logger.success(`Turnstile Solver API running on http://localhost:${PORT}`);
}); |