Code play game

const headers={accept:'application/json, text/plain, */*','accept-language':'en-US,en;q=0.9',origin:'https://telegram.blum.codes',lang:'en',priority:'u=1, i','sec-ch-ua':'"Chromium";v="128", "Not;A=Brand";v="24", "Microsoft Edge";v="128", "Microsoft Edge WebView2";v="128"','sec-ch-ua-mobile':'?0','sec-ch-ua-platform':'"Windows"','sec-fetch-dest':'empty','sec-fetch-mode':'cors','sec-fetch-site':'same-site','user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36 Edg/128.0.0.0'};
clear();
async function ohyea() {
    const query = window.Telegram.WebView.initParams.tgWebAppData;
    if (!query) {
        console.log("CANNOT GET LOGIN INFORMATION. END ")
    }
    const json_data = { query };
    const _headers = { ...headers, 'Content-Type': 'application/json' };
    const response = await fetch('https://user-domain.blum.codes/api/v1/auth/provider/PROVIDER_TELEGRAM_MINI_APP', {
        method: 'POST',
        headers: _headers,
        body: JSON.stringify(json_data)
    });
    if (response.ok) {
        const responseJson = await response.json();
        const token = responseJson.token.access;
        headers['authorization'] = `Bearer ${token}`;
        delete headers['content-type'];
        return 'OK';
    } else {
        return false;
    }
}

async function getplayPasses() {
    const response = await fetch('https://game-domain.blum.codes/api/v1/user/balance', { headers });
    if (response.ok) {
        const data = await response.json();
        const playPasses = Number(data.playPasses);
        if (playPasses == null) return console.log("❌ GAME TICKET INFORMATION CANNOT BE OBTAINED...");
        if (playPasses === 0) return console.log("🎲 NO HAVE TICKET! 😄");
        return playPasses;
    }
}

async function start() {
    const _ohyea = await ohyea();
    if (!_ohyea) {
        console.log("NO LOGIN!.. 🥹");
        return;
    }
    const playPasses = await getplayPasses();
    if (!playPasses) {
        return;
    }
    for (let index = 0; index < playPasses; index++) {
        try {
            const response = await fetch('https://game-domain.blum.codes/api/v1/game/play', { method: 'POST', headers });
            const data = await response.json();
            const gameId = data.gameId || '';
            console.log(`${index + 1}. GameId: ${gameId}`);
            if (gameId) {
                const _wait = getRandomInt(50, 60);
                console.log(` - Waiting play game: ${_wait} seconds`);
                await sleep(_wait * 1000);
                
                // Change this paragraph to claim from 185 to 230 points
                const points = Math.floor(Math.random() * 41) + 185;
                
                headers['content-type'] = 'application/json';
                const claimResponse = await fetch('https://game-domain.blum.codes/api/v1/game/claim', {
                    method: 'POST',
                    headers,
                    body: JSON.stringify({ gameId, points })
                });
                const claimData = await claimResponse.text();
                console.log(` - Claim Game: ${claimData}. Points: ${points}`);
                totalPoint += points;
            }
            const _wait2 = getRandomInt(10, 15);
            console.log(` - Waiting new game: ${_wait2} seconds`);
            await sleep(getRandomInt(_wait2 * 1000));
        } catch (error) {
            console.error(`Error in game loop: ${error}`);
        }
    }
}

var totalPoint = 0;

function sleep(ms) {
    return new Promise(resolve => setTimeout(resolve, ms));
}

function getRandomInt(min, max) {
    return Math.floor(Math.random() * (max - min + 1)) + min;
}

start().then(() => console.log(`\n\n🥳🎆 DONE ALL: +${totalPoint} BP 🥳🎆\n\n`));

Last updated