Spaces:
Paused
Paused
| // 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}`); | |
| }); |