const { v4: uuidv4 } = require('uuid');
const fs = require('fs');
const axios = require('axios');
const config = require('./config.js');
process.title = 'Starting...';
let genned = 0;
let errors = 0;
async function start() {
try {
const url = "https://api.discord.gx.games/v1/direct-fulfillment";
const headers = {
"Accept": "*/*",
"Accept-Language": "en-US,en;q=0.9",
"Authority": "api.discord.gx.games",
"Content-Type": "application/json",
"Origin": "https://www.opera.com",
"Referer": "https://www.opera.com/",
"Sec-Ch-Ua": '"Not_A Brand";v="8", "Chromium";v="120", "Opera GX";v="106"',
"Sec-Ch-Ua-Mobile": "?0",
"Sec-Ch-Ua-Platform": '"Windows"',
"Sec-Fetch-Dest": "empty",
"Sec-Fetch-Mode": "cors",
"Sec-Fetch-Site": "cross-site",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 OPR/106.0.0.0",
};
const data = { "partnerUserId": uuidv4() };
const response = await axios.post(url, data, { headers, timeout: 5000 });
if (response.status === 200) {
const token = response.data.token;
if (token) {
const link = `https://discord.com/billing/partner-promotions/1180231712274387115/${token}`;
console.log(`Generated: ${link}`);
genned++;
fs.appendFileSync('contents/promos.txt', `${link}\n`);
}
} else if (response.status === 429) {
console.log(`You are being rate limited!`);
} else {
console.log(`Request failed : ${response.status}`);
}
} catch (e) {
errors++;
} finally {
process.title = `Generated: ${genned} | Errors: ${errors} | Time: ${process.uptime().toFixed(2)} seconds.`;
}
}
setInterval(start, config.delay);