Advertisement
Guest User

Untitled

a guest
Jan 25th, 2020
172
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const puppeteer = require('puppeteer');
  2. const fs = require('fs');
  3.  
  4.  
  5.  
  6. let getting_info = async function() {
  7.  
  8.     //king parser for all data
  9.     async function get_data() {
  10.         let data = await page.evaluate(() => {
  11.             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;
  12.             let game_time;
  13.             try {
  14.                 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;
  15.                 game_time = `${game_time[0]}${game_time[1]}`;
  16.             } catch (e) {
  17.                 console.log("FIRST DATA TIME WASN`T TAKEN")
  18.                 game_time = '00';
  19.             }
  20.             let score;
  21.             try {
  22.                 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;
  23.                 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;
  24.                 score = score1 + '-' + score2;
  25.             } catch(e) {
  26.                 console.log("FIRST DATA SCORE WASN'T TAKEN")
  27.                 score = '0-0';
  28.             }
  29.             return {names, score, game_time};
  30.         });
  31.         return data;
  32.     }
  33.  
  34.     //basic stuff
  35.     const browser = await puppeteer.launch({headless: false, defaultViewport: null});
  36.     const page = await browser.newPage();
  37.     await page.goto('https://1xbet.com/cyber/FIFA/1796333-FIFA-18-Russian-Championship/');
  38.     await page.waitFor(45000);
  39.  
  40.     //Закрывает уведомление
  41.     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');
  42.     await page.waitFor(1500);
  43.  
  44.     //logger is needed to write stats into Stats.txt
  45.     var logger = fs.createWriteStream('log.txt', {
  46.         flags: 'a' // 'a' means appending (old data will be preserved)
  47.       })
  48.  
  49.     //cuurent results are in curr_xxx
  50.     let result = await get_data();
  51.     let curr_name = result.names;
  52.     let curr_score = result.score;
  53.     let curr_time = result.game_time;
  54.  
  55.     //we write stats of match into data_string
  56.     let data_string = "NEW_GAME\n" + curr_name + '\n' + curr_score + ' at ' + curr_time + '\n';
  57.    
  58.     //to check goals in main part
  59.     let not_scored = true;
  60.     let bet_made = false;
  61.  
  62.     //for 31 minute stats files
  63.     counter = 1;
  64.  
  65.     //MONEY IS HERE
  66.     for (;;) {
  67.         await page.waitFor(100);
  68.         let res;
  69.  
  70.         //trying to get info, if couldn`t - getting previous info
  71.         try {
  72.             res = await page.evaluate(() => {
  73.                 let names;
  74.                 //try{
  75.                 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;
  76.                 /*} catch(e) {
  77.                     names = "NO\nNO";
  78.                     console.log("SECOND DATA NAMES WASN`T TAKEN");
  79.                 }*/
  80.                 let game_time;
  81.                 try {
  82.                     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;
  83.                     game_time = `${game_time[0]}${game_time[1]}`;
  84.                 } catch (e) {
  85.                     game_time = '00';
  86.                     console.log("SECOND DATA TIME WASN'T TAKEN");
  87.                 }
  88.                 let score;
  89.                 try {
  90.                     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;
  91.                     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;
  92.                     score = score1 + '-' + score2;
  93.                 } catch(e) {
  94.                     score = '0-0';
  95.                     console.log("SECOND DATA SCORE WASN'T TAKEN");
  96.                 }
  97.                 return {names, score, game_time};
  98.             });
  99.         } catch (e) {
  100.             console.log("DIDN`T GET DATA IN LOOP AT ALL" + curr_time);
  101.             let names = curr_name;
  102.             let score = curr_score;
  103.             let game_time = curr_time;
  104.             res = {names, score, game_time};
  105.         }
  106.  
  107.         //main part with 31 minute stats
  108.         try {
  109.            if (res.names != undefined && curr_name != res.names) {
  110.                 console.log("NEW GAME");
  111.                 logger.write(data_string) // log data into Stats.txt
  112.  
  113.                 //collect stats about 31 bets
  114.                 if (bet_made) {
  115.                     counter += 1;
  116.                     fs.writeFile(`MADE ${counter}.txt`, data_string, (err) => {
  117.      
  118.                         // In case of a error throw err.
  119.                         if (err) {console.log("ERROR")};
  120.                     })
  121.                 }
  122.  
  123.                 //create new info
  124.                 data_string = "NEW GAME \n";
  125.                 await page.reload();
  126.                 curr_name = res.names;
  127.                 curr_score = res.score;
  128.                 curr_time = res.game_time;
  129.                 data_string += curr_name + '\n' + curr_score + ' at ' + curr_time + '\n';
  130.                 not_scored = true;
  131.                 bet_made = false;
  132.  
  133.             } else {
  134.                 if (curr_score != res.score) {
  135.                     if (not_scored && (Number(res.game_time) >= 31 && Number(res.game_time) <= 33)) {
  136.                         console.log("31 MINUTE!!!!!!")
  137.  
  138.                         not_scored = false;
  139.                         bet_made = true;
  140.  
  141.                         await page.click('#user-money > div > div > a');
  142.                         await page.waitFor(1000);
  143.  
  144.                         // Шаг 5.
  145.                         // Открывает раздел со ставками на таймы.
  146.                         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');
  147.                         await page.waitFor(500);
  148.  
  149.                         // Шаг 6.
  150.                         // Выбиорает минимальный тотал Меньше (это для стратегии "31-ая минута").
  151.                         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)');
  152.                         await page.reload();
  153.                         await page.waitFor(2500);
  154.  
  155.                         // Шаг 7.
  156.                         // Заключение ставки.
  157.                         // Для полноценной работы бота "ставки ва-банк" необходимо "1000000" заменить на "before_bet_balance"
  158.                         before_bet_balance = await page.evaluate(() => {
  159.                         let budget= document.querySelector('#user-money > div > div > a > div > p').innerText;
  160.                         return budget
  161.                         });
  162.  
  163.  
  164.  
  165.                         //ТЕСТОВАЯ ЧАСТЬ
  166.  
  167.                         console.log("STEP 1")
  168.                         // Вводит сумму ставки, основываясь на Баланс.
  169.                         // Ставка может быть заблокированной, тогда мы не сможем зайти в заполнение ставки, поэтому идем циклом, пока не откроется
  170.                         let bet_not_made = true;
  171.                         while (bet_not_made) {
  172.                         try{
  173.                             console.log("STEP 2")
  174.                             await page.waitFor(2000);
  175.                             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);
  176.                             bet_not_made = false;
  177.                         } catch(e) {
  178.                             console.log("ERR in bet")
  179.                             // Открывает раздел со ставками на таймы.
  180.                             //page.waitFor(12000)
  181.                             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');
  182.                             await page.waitFor(100);
  183.                             //выбирает тотал меньше
  184.                             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)');
  185.                             await page.reload();
  186.                             bet_not_made = true;
  187.                         }
  188.                         }
  189.                     console.log("STEP 3")
  190.                     // Кликаем на автомаксимум, на случай, если принимают меньше денег, чем мы собрались ставить
  191.                     //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');
  192.                     //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');
  193.                     //КОНЕЦ ТЕСТОВОЙ ЧАСТИ
  194.                     console.log("STEP 4");
  195.                        
  196.                        
  197.                     //Подтверждает ставку.
  198.                     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');
  199.                     await page.waitFor(100);
  200.                     page.reload();
  201.                     console.log("BET WAS MADE")
  202.                     }
  203.                 }
  204.                 not_scored = false;
  205.                 curr_time = res.game_time;
  206.                 curr_score = res.score;
  207.                 data_string += curr_score + ' at ' + curr_time + '\n';
  208.                 //console.log("GOAL\n" + data_string);
  209.                 }
  210.            
  211.         } catch (e) {console.log("NO DATA");}
  212.     }
  213.     logger.end();
  214.     browser.close();
  215.     return result;
  216.  
  217. }
  218.  
  219.  
  220. getting_info().then((value) => {
  221.     console.log("jopa");
  222. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement