Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const puppeteer = require('puppeteer');
- const fs = require('fs');
- let getting_info = async function() {
- //king parser for all data
- async function get_data() {
- let data = await page.evaluate(() => {
- let names = document.querySelector('#games_content > div > div:nth-child(1) > div > div > div:nth-child(2) > div > div.c-events-scoreboard > div:nth-child(1) > a').innerText;
- let game_time;
- try {
- game_time = document.querySelector('#games_content > div > div:nth-child(1) > div > div > div:nth-child(2) > div > div.c-events-scoreboard > div:nth-child(2) > div.c-events-scoreboard__subitem > div.c-events__time').innerText;
- game_time = `${game_time[0]}${game_time[1]}`;
- } catch (e) {
- console.log("FIRST DATA TIME WASN`T TAKEN")
- game_time = '00';
- }
- let score;
- try {
- let score1 = document.querySelector('#games_content > div > div:nth-child(1) > div > div > div:nth-child(2) > div > div.c-events-scoreboard > div:nth-child(1) > div > div:nth-child(1) > span.c-events-scoreboard__cell.c-events-scoreboard__cell--all').innerText;
- let score2 = document.querySelector('#games_content > div > div:nth-child(1) > div > div > div:nth-child(2) > div > div.c-events-scoreboard > div:nth-child(1) > div > div:nth-child(2) > span.c-events-scoreboard__cell.c-events-scoreboard__cell--all').innerText;
- score = score1 + '-' + score2;
- } catch(e) {
- console.log("FIRST DATA SCORE WASN'T TAKEN")
- score = '0-0';
- }
- return {names, score, game_time};
- });
- return data;
- }
- //basic stuff
- const browser = await puppeteer.launch({headless: false, defaultViewport: null});
- const page = await browser.newPage();
- await page.goto('https://1xbet.com/cyber/FIFA/1796333-FIFA-18-Russian-Championship/');
- await page.waitFor(45000);
- //Закрывает уведомление
- await page.click('#sports_right > div.iscroll-wrap > div:nth-child(1) > div > div.coupon__header > div.coupon__states > button.c-btn.c-btn--flat.c-btn--icon-only.fixRightMenuBut');
- await page.waitFor(1500);
- //logger is needed to write stats into Stats.txt
- var logger = fs.createWriteStream('log.txt', {
- flags: 'a' // 'a' means appending (old data will be preserved)
- })
- //cuurent results are in curr_xxx
- let result = await get_data();
- let curr_name = result.names;
- let curr_score = result.score;
- let curr_time = result.game_time;
- //we write stats of match into data_string
- let data_string = "NEW_GAME\n" + curr_name + '\n' + curr_score + ' at ' + curr_time + '\n';
- //to check goals in main part
- let not_scored = true;
- let bet_made = false;
- //for 31 minute stats files
- counter = 1;
- //MONEY IS HERE
- for (;;) {
- await page.waitFor(100);
- let res;
- //trying to get info, if couldn`t - getting previous info
- try {
- res = await page.evaluate(() => {
- let names;
- //try{
- names = document.querySelector('#games_content > div > div:nth-child(1) > div > div > div:nth-child(2) > div > div.c-events-scoreboard > div:nth-child(1) > a').innerText;
- /*} catch(e) {
- names = "NO\nNO";
- console.log("SECOND DATA NAMES WASN`T TAKEN");
- }*/
- let game_time;
- try {
- game_time = document.querySelector('#games_content > div > div:nth-child(1) > div > div > div:nth-child(2) > div > div.c-events-scoreboard > div:nth-child(2) > div.c-events-scoreboard__subitem > div.c-events__time').innerText;
- game_time = `${game_time[0]}${game_time[1]}`;
- } catch (e) {
- game_time = '00';
- console.log("SECOND DATA TIME WASN'T TAKEN");
- }
- let score;
- try {
- let score1 = document.querySelector('#games_content > div > div:nth-child(1) > div > div > div:nth-child(2) > div > div.c-events-scoreboard > div:nth-child(1) > div > div:nth-child(1) > span.c-events-scoreboard__cell.c-events-scoreboard__cell--all').innerText;
- let score2 = document.querySelector('#games_content > div > div:nth-child(1) > div > div > div:nth-child(2) > div > div.c-events-scoreboard > div:nth-child(1) > div > div:nth-child(2) > span.c-events-scoreboard__cell.c-events-scoreboard__cell--all').innerText;
- score = score1 + '-' + score2;
- } catch(e) {
- score = '0-0';
- console.log("SECOND DATA SCORE WASN'T TAKEN");
- }
- return {names, score, game_time};
- });
- } catch (e) {
- console.log("DIDN`T GET DATA IN LOOP AT ALL" + curr_time);
- let names = curr_name;
- let score = curr_score;
- let game_time = curr_time;
- res = {names, score, game_time};
- }
- //main part with 31 minute stats
- try {
- if (res.names != undefined && curr_name != res.names) {
- console.log("NEW GAME");
- logger.write(data_string) // log data into Stats.txt
- //collect stats about 31 bets
- if (bet_made) {
- counter += 1;
- fs.writeFile(`MADE ${counter}.txt`, data_string, (err) => {
- // In case of a error throw err.
- if (err) {console.log("ERROR")};
- })
- }
- //create new info
- data_string = "NEW GAME \n";
- await page.reload();
- curr_name = res.names;
- curr_score = res.score;
- curr_time = res.game_time;
- data_string += curr_name + '\n' + curr_score + ' at ' + curr_time + '\n';
- not_scored = true;
- bet_made = false;
- } else {
- if (curr_score != res.score) {
- if (not_scored && (Number(res.game_time) >= 31 && Number(res.game_time) <= 33)) {
- console.log("31 MINUTE!!!!!!")
- not_scored = false;
- bet_made = true;
- await page.click('#user-money > div > div > a');
- await page.waitFor(1000);
- // Шаг 5.
- // Открывает раздел со ставками на таймы.
- await page.click('#games_content > div > div:nth-child(1) > div > div > div:nth-child(2) > div > div.c-events-scoreboard > div:nth-child(2) > div.c-events__more-wrap > a.c-events__more.c-events__more_events');
- await page.waitFor(500);
- // Шаг 6.
- // Выбиорает минимальный тотал Меньше (это для стратегии "31-ая минута").
- await page.click('#games_content > div > div:nth-child(1) > div > div > div:nth-child(2) > div.c-events.c-events_inner > div:nth-child(1) > div > div.c-bets > a:nth-child(9)');
- await page.reload();
- await page.waitFor(2500);
- // Шаг 7.
- // Заключение ставки.
- // Для полноценной работы бота "ставки ва-банк" необходимо "1000000" заменить на "before_bet_balance"
- before_bet_balance = await page.evaluate(() => {
- let budget= document.querySelector('#user-money > div > div > a > div > p').innerText;
- return budget
- });
- //ТЕСТОВАЯ ЧАСТЬ
- console.log("STEP 1")
- // Вводит сумму ставки, основываясь на Баланс.
- // Ставка может быть заблокированной, тогда мы не сможем зайти в заполнение ставки, поэтому идем циклом, пока не откроется
- let bet_not_made = true;
- while (bet_not_made) {
- try{
- console.log("STEP 2")
- await page.waitFor(2000);
- await page.type('#sports_right > div > div:nth-child(1) > div > div.c-tabs__content > div.coupon__content > div > div.coupon__settings > div.coupon__bet-settings > div.grid.coupon-grid.coupon-grid--theme-light.u-npv > div > div:nth-child(3) > div > input' ,before_bet_balance);
- bet_not_made = false;
- } catch(e) {
- console.log("ERR in bet")
- // Открывает раздел со ставками на таймы.
- //page.waitFor(12000)
- await page.click('#games_content > div > div:nth-child(1) > div > div > div:nth-child(2) > div > div.c-events-scoreboard > div:nth-child(2) > div.c-events__more-wrap > a.c-events__more.c-events__more_events');
- await page.waitFor(100);
- //выбирает тотал меньше
- await page.click('#games_content > div > div:nth-child(1) > div > div > div:nth-child(2) > div.c-events.c-events_inner > div:nth-child(1) > div > div.c-bets > a:nth-child(9)');
- await page.reload();
- bet_not_made = true;
- }
- }
- console.log("STEP 3")
- // Кликаем на автомаксимум, на случай, если принимают меньше денег, чем мы собрались ставить
- //await page.click('#sports_right > div.iscroll-wrap > div:nth-child(1) > div > div.c-tabs__content > div.coupon__content > div > div.coupon__settings > div.coupon__bet-settings > div.grid.coupon-grid.coupon-grid--full-width.u-npv > div:nth-child(2) > div:nth-child(2) > div > div');
- //await page.click('#sports_right > div.iscroll-wrap > div:nth-child(1) > div > div.c-tabs__content > div.coupon__content > div > div.coupon__settings > div.coupon__bet-settings > div.grid.coupon-grid.coupon-grid--full-width.u-npv > div:nth-child(2) > div:nth-child(2) > div > div > div.multiselect__tags > span');
- //КОНЕЦ ТЕСТОВОЙ ЧАСТИ
- console.log("STEP 4");
- //Подтверждает ставку.
- await page.click('#sports_right > div.iscroll-wrap > div:nth-child(1) > div > div.c-tabs__content > div.coupon__content > div > div.coupon__settings > div.grid.coupon-btn-group.u-npv > div > div > div');
- await page.waitFor(100);
- page.reload();
- console.log("BET WAS MADE")
- }
- }
- not_scored = false;
- curr_time = res.game_time;
- curr_score = res.score;
- data_string += curr_score + ' at ' + curr_time + '\n';
- //console.log("GOAL\n" + data_string);
- }
- } catch (e) {console.log("NO DATA");}
- }
- logger.end();
- browser.close();
- return result;
- }
- getting_info().then((value) => {
- console.log("jopa");
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement