Advertisement
Guest User

Untitled

a guest
Apr 5th, 2020
450
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. function getClubs(cookie, token) {
  54.     axios.request({
  55.         url: "https://dirtrally2.com/api/Club/MyClubs?page=1&pageSize=10",
  56.         method: "GET",
  57.         headers: {
  58.             Accept: "application/json, text/plain, */*",
  59.             "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",
  60.             Referer: "https://dirtrally2.com/clubs/club/260994/results/championship/0/event/0",
  61.             Cookie: cookie,
  62.             "RaceNet.XSRFH": token,
  63.         }
  64.     }).then(response => {
  65.  
  66.         //console.log(response.data);
  67.         myClubs.push(response.data.clubs);
  68.         var_dump(myClubs);
  69.         myClubs[0].forEach(element=>{
  70.             recentResults(cookie, token, element.id);
  71.         });
  72.     });
  73. }
  74.  
  75. function recentResults(cookie, token, clubId) {
  76.     axios.request({
  77.         url: "https://dirtrally2.com/api/Club/"+clubId+"/recentResults",
  78.         method: "GET",
  79.         headers:{
  80.             Accept: "application/json, text/plain, */*",
  81.             "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",
  82.             Referer: "https://dirtrally2.com/clubs/club/"+clubId+"/results/championship/0/event/0",
  83.             Cookie: cookie,
  84.             "RaceNet.XSRFH": token,
  85.         }
  86.     }).then(response => {
  87.         var_dump(response.data);
  88.         stages.push(response.data.championships[0]);
  89.         stagesTmp=[];
  90.         stagesTmp.push(response.data.championships[0]);
  91.         stagesTmp.forEach(e =>{
  92.             e.events[0].stages.forEach(s=>{
  93.                 console.log("Getting results from: " + e.name + "(" + e.events[0].challengeId + "=>" + e.events[0].id+")/"+s.name+"("+s.id+")");
  94.                 leaderboard(cookie, token, e.events[0].challengeId, e.events[0].id, s.id, clubId);
  95.                 sleep.msleep(2000);
  96.             });
  97.         });
  98.        
  99.         //console.log(response.data);
  100.     });
  101. }
  102.  
  103. function leaderboard(cookie, token, challengeId, eventId, stageId, clubId) {
  104.     const postData = JSON.stringify({
  105.         "challengeId":challengeId,
  106.         "selectedEventId":eventId,
  107.         "stageId":stageId,
  108.         "page":1,
  109.         "pageSize":100,
  110.         "orderByTotalTime":true,
  111.         "platformFilter":"None",
  112.         "playerFilter":"Everyone",
  113.         "filterByAssists":"Unspecified",
  114.         "filterByWheel":"Unspecified",
  115.         "nationalityFilter":"None",
  116.         "eventId":eventId
  117.     });
  118.  
  119.     axios.request({
  120.         url: "https://dirtrally2.com/api/Leaderboard",
  121.         method: "POST",
  122.         data: postData,
  123.         headers:{
  124.             Accept: "application/json, text/plain, */*",
  125.             "RaceNet.XSRFH": token,
  126.             "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",
  127.             Referer: "https://dirtrally2.com/clubs/club/"+clubId+"/results/championship/0/event/0",
  128.             Cookie: cookie,
  129.             "Content-Length": postData.length,
  130.             "Content-Type": "application/json;charset=UTF-8"
  131.         }
  132.     }).then(response => {
  133.         var resultsTmp = {
  134.             "challengeId": challengeId,
  135.             "eventId": eventId,
  136.             "stageId": stageId,
  137.             "resultsFromStage": response.data.entries
  138.         };
  139.         results.push(resultsTmp);
  140.         //console.log(response.data);
  141.         var_dump(resultsTmp);
  142.     });
  143. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement