Advertisement
Guest User

Untitled

a guest
Apr 5th, 2020
248
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const { openBrowser, goto, focus, write, $, click, getCookies, closeBrowser } = require('taiko');
  2. const axios = require('axios');
  3. const var_dump = require('var_dump');
  4. var sleep = require('sleep');
  5.  
  6. var myClubs=[];
  7. var stages=[];
  8. var stagesTmp={};
  9. var results=[];
  10.  
  11. (async () => {
  12.     try {
  13.  
  14.         await openBrowser({ headless: false });
  15.         await goto("https://dirtrally2.com/account/login?returnUri=", { navigationTimeout: 300000 });
  16.  
  17.         await focus($("#Email"));
  18.         await write("hauser.kristof@gmail.com");
  19.         await focus($("#Password"));
  20.         await write("Kristof02+");
  21.         await click($("#login_button_container > input"));
  22.         await goto("https://dirtrally2.com/clubs");
  23.  
  24.         const cookies = await getCookies();
  25.  
  26.         let cookieRaw = '';
  27.         let token = '';
  28.         cookies.forEach(cookie => {
  29.             cookieRaw += `${cookie.name}=${cookie.value}; `;
  30.         });
  31.  
  32.         axios.request({
  33.             url: "https://dirtrally2.com/api/ClientStore/GetInitialState",
  34.             method: "GET",
  35.             headers:{
  36.                 Accept: "application/json, text/plain, */*",
  37.                 "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36",
  38.                 Cookie: cookieRaw,
  39.             }
  40.         }).then(response => {
  41.             token = response.data.identity.token;
  42.             getClubs(cookieRaw, token);
  43.            
  44.             //leaderboard(cookieRaw, token);
  45.         })
  46.     } catch (error) {
  47.         console.error(error);
  48.     } finally {
  49.         await closeBrowser();
  50.     }
  51. })();
  52.  
  53. async function asyncForEach(array, callback) {
  54.     for (let index = 0; index < array.length; index++) {
  55.         await callback(array[index], index, array);
  56.     }
  57. }
  58.  
  59. async function getClubs(cookie, token) {
  60.     axios.request({
  61.         url: "https://dirtrally2.com/api/Club/MyClubs?page=1&pageSize=10",
  62.         method: "GET",
  63.         headers: {
  64.             Accept: "application/json, text/plain, */*",
  65.             "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36",
  66.             Referer: "https://dirtrally2.com/clubs/club/260994/results/championship/0/event/0",
  67.             Cookie: cookie,
  68.             "RaceNet.XSRFH": token,
  69.         }
  70.     }).then(response => {
  71.  
  72.         //console.log(response.data);
  73.         myClubs.push(response.data.clubs);
  74.         var_dump(myClubs);
  75.         const start = async()=>{
  76.             await asyncForEach(myClubs[0], async(element)=>{
  77.                 await recentResults(cookie, token, element.id);    
  78.             });
  79.         }
  80.         /*myClubs[0].forEach(element=>{
  81.             recentResults(cookie, token, element.id);
  82.         });*/
  83.         start();
  84.     });
  85. }
  86.  
  87. async function recentResults(cookie, token, clubId) {
  88.     axios.request({
  89.         url: `https://dirtrally2.com/api/Club/${clubId}/recentResults`,
  90.         method: "GET",
  91.         headers:{
  92.             Accept: "application/json, text/plain, */*",
  93.             "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36",
  94.             Referer: "https://dirtrally2.com/clubs/club/"+clubId+"/results/championship/0/event/0",
  95.             Cookie: cookie,
  96.             "RaceNet.XSRFH": token,
  97.         }
  98.     }).then(response => {
  99.         var_dump(response.data);
  100.        
  101.         stagesTmp={};
  102.         stagesTmp={
  103.             "challengeName": response.data.championships[0].name,
  104.             "challengeId": response.data.championships[0].events[0].challengeId,
  105.             "eventId": response.data.championships[0].events[0].id,
  106.             "stages": response.data.championships[0].events[0].stages
  107.         };
  108.         stages.push(stagesTmp);
  109.         var_dump(stagesTmp);
  110.  
  111.         for(s of stagesTmp.stages){
  112.             console.log("Getting results from: " + stagesTmp.challengeName + "(" + stagesTmp.challengeId + "=>" + stagesTmp.eventId + ")/" + s.name + "(" + s.id + ")");
  113.             const d=leaderboard(cookie, token, stagesTmp.challengeId, stagesTmp.eventId, s.id, clubId);
  114.             console.log(d);
  115.         }
  116.  
  117.         /*const stagesStart = async()=>{
  118.             await asyncForEach(stagesTmp.stages, async(s)=>{
  119.                 await setTimeout(() => {
  120.                     console.log("Getting results from: " + stagesTmp.challengeName + "(" + stagesTmp.challengeId + "=>" + stagesTmp.eventId + ")/" + s.name + "(" + s.id + ")");
  121.                     leaderboard(cookie, token, stagesTmp.challengeId, stagesTmp.eventId, s.id, clubId);
  122.                 }, 2000);
  123.             });
  124.         };*/
  125.  
  126.         /*stagesTmp.forEach(e =>{
  127.             e.events[0].stages.forEach(s=>{
  128.                 setTimeout(() => {
  129.                     console.log("Getting results from: " + e.name + "(" + e.events[0].challengeId + "=>" + e.events[0].id + ")/" + s.name + "(" + s.id + ")");
  130.                     leaderboard(cookie, token, e.events[0].challengeId, e.events[0].id, s.id, clubId);    
  131.                 }, 2000);
  132.                
  133.                 //sleep.msleep(2000);
  134.             });
  135.         });*/
  136.         //stagesStart();
  137.         //console.log(response.data);
  138.     });
  139. }
  140.  
  141. async function leaderboard(cookie, token, challengeId, eventId, stageId, clubId) {
  142.     let postData = JSON.stringify({
  143.         "challengeId":challengeId,
  144.         "selectedEventId":eventId,
  145.         "stageId":stageId,
  146.         "page":1,
  147.         "pageSize":100,
  148.         "orderByTotalTime":true,
  149.         "platformFilter":"None",
  150.         "playerFilter":"Everyone",
  151.         "filterByAssists":"Unspecified",
  152.         "filterByWheel":"Unspecified",
  153.         "nationalityFilter":"None",
  154.         "eventId":eventId
  155.     });
  156.  
  157.     await axios.request({
  158.         url: "https://dirtrally2.com/api/Leaderboard",
  159.         method: "POST",
  160.         data: postData,
  161.         headers:{
  162.             Accept: "application/json, text/plain, */*",
  163.             "RaceNet.XSRFH": token,
  164.             "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36",
  165.             Referer: "https://dirtrally2.com/clubs/club/"+clubId+"/results/championship/0/event/0",
  166.             Cookie: cookie,
  167.             "Content-Length": postData.length,
  168.             "Content-Type": "application/json;charset=UTF-8"
  169.         }
  170.     }).then(response => {
  171.         console.log("Status code: "+response.status);
  172.         let resultsTmp = {
  173.             "challengeId": challengeId,
  174.             "eventId": eventId,
  175.             "stageId": stageId,
  176.             "resultsFromStage": response.data.entries
  177.         };
  178.         results.push(resultsTmp);
  179.         //console.log(response.data);
  180.         //var_dump(resultsTmp);
  181.         return resultsTmp;
  182.         /*return new Promise((resolve)=>{
  183.             setTimeout(() => {
  184.                 resolve('resolved');
  185.             }, 2000);
  186.         });*/
  187.     });
  188. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement