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}`);
});