Skip to content

Instantly share code, notes, and snippets.

@khaschuluu
Created January 18, 2020 11:00
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save khaschuluu/ae408396763c2a4bfea9c7e9a34e2b3b to your computer and use it in GitHub Desktop.
Save khaschuluu/ae408396763c2a4bfea9c7e9a34e2b3b to your computer and use it in GitHub Desktop.
yodice
const puppeteer = require('puppeteer')
const stats = require('./stats.json')
const fs = require('fs')
const { promisify } = require("util")
const writeFile = promisify(fs.writeFile)
;
(async () => {
const puppet = await puppeteer.launch({
headless: false,
args: [
'-no-sandbox',
'--disable-setuid-sandbox',
'--disable-dev-shm-usage',
'--disable-accelerated-2d-canvas',
'--disable-gpu',
'--window-size=1070x500'
],
userDataDir: './userdata'
})
page = (await puppet.pages())[0]
await page.setViewport({
width: 1070,
height: 500
})
await page.setRequestInterception(true);
page.on('request', req => {
if (req.resourceType() == 'font' || req.resourceType() == 'image') {
req.abort()
} else {
if (
req.url().indexOf('yobit.net/twits/') != -1 ||
req.url().indexOf('google.com') != -1 ||
req.url().indexOf('gstatic.com') != -1 ||
req.url().indexOf('yandex.ru') != -1
) req.abort()
else req.continue()
}
})
var startbet = 0.00001
var bet = startbet
var straight_loses_counter = 0
var fail_count = 0
var betinput
var starter = async () => {
await page.goto('https://yobit.net/en/dice/TRX')
var check_only_mine = await page.waitForSelector('#check_only_mine')
var is_checked_only_mine = await (await check_only_mine.getProperty('checked')).jsonValue()
if (!is_checked_only_mine) {
check_only_mine.click()
await page.waitForRequest('https://yobit.net/en/dice/')
await page.goto('https://yobit.net/en/dice/TRX')
}
await page.evaluate(() => {
var wrap = document.querySelector('.content .wrap')
var leftbar = document.querySelector('.left_bar')
var rightbar = document.querySelector('.right_bar')
var dicepage = document.querySelector('.dice_page')
var list = document.querySelector('.list')
if (wrap && leftbar && rightbar && dicepage && list) {
wrap.removeChild(leftbar)
wrap.removeChild(rightbar)
dicepage.removeChild(list)
} else {
throw new Error('page not fully loaded')
}
})
betinput = await page.waitForSelector('.bet')
await better()
}
var better = async () => {
await betinput.click({clickCount: 3})
await betinput.type(bet.toFixed(8))
await (await page.waitForSelector('input[value="Roll < 48"]')).click()
var res = await page.waitForResponse('https://yobit.net/ajax/system_dice.php')
res = await res.json()
fail_count = 0
if (res && res.error) {
await (await page.waitForSelector('.messi .btn')).click()
await page.waitForSelector('.messi .btn', {hidden: true})
} else {
stats.total += 1
if (res.win) {
stats.won = parseFloat((stats.won + bet).toFixed(8))
if (straight_loses_counter) {
stats.straight_loses[straight_loses_counter] += 1
await writeFile('stats.json', JSON.stringify(stats))
straight_loses_counter = 0
}
console.log('won ' + bet)
bet = startbet
} else {
straight_loses_counter += 1
stats.won = parseFloat((stats.won - bet).toFixed(8))
console.log('los ' + bet)
if (bet < 0.00064) bet *= 4
else bet *= 2
}
}
await better()
}
var start_bet = async () => {
try {
await starter()
} catch (e) {
await page.screenshot({path: 'ss.png'})
console.error('eeeero catched', e)
fail_count += 1
if (fail_count > 10) console.log('failed')
else await start_bet()
}
}
await start_bet()
await puppet.close()
})()
{"total":26922,"won":1.11766,"straight_loses":[0,3241,1692,911,460,203,94,56,35,15,7,2,4,2,1,0,1,0,0,0,0,0]}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment