Advertisement
Trojan213131

Untitled

Oct 2nd, 2022
916
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const requestOptions = {
  2.   headers: {
  3.     accept: "*/*",
  4.     "accept-language": "de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7,ru;q=0.6",
  5.     "sec-ch-ua":
  6.       '"Google Chrome";v="105", "Not)A;Brand";v="8", "Chromium";v="105"',
  7.     "sec-ch-ua-mobile": "?0",
  8.     "sec-ch-ua-platform": '"Windows"',
  9.     "sec-fetch-dest": "empty",
  10.     "sec-fetch-mode": "cors",
  11.     "sec-fetch-site": "same-origin",
  12.   },
  13.   referrer: "https://www.abilityarena.com/profile/stats",
  14.   referrerPolicy: "strict-origin-when-cross-origin",
  15.   body: null,
  16.   method: "GET",
  17.   mode: "cors",
  18.   credentials: "include",
  19. };
  20. let i = 0;
  21. const leaderboard = await fetch(
  22.   "https://www.abilityarena.com/api/leaderboard",
  23.   requestOptions
  24. ).then((res) => res.clone().json());
  25. console.log(leaderboard);
  26. const data = await Promise.allSettled(
  27.   leaderboard.map(async (player) => {
  28.     const abilityStatsRequest = await fetch(
  29.       `https://www.abilityarena.com/api/players/${player.steam_id}/ability_stats`,
  30.       requestOptions
  31.     );
  32.     const abilityStatsBody = await abilityStatsRequest.clone().json();
  33.     i++;
  34.     console.log(i);
  35.     return abilityStatsBody;
  36.   })
  37. );
  38.  
  39. const summarizedData = data.flat().reduce((acc, cur) => {
  40.   if (acc[cur.ability_name]) {
  41.     console.log(cur);
  42.     acc[cur.ability_name] = acc[cur.ability_name];
  43.     acc[cur.ability_name].count += 1;
  44.     acc[cur.ability_name].numGames += cur.numGames;
  45.     acc[cur.ability_name].freq += cur.freq;
  46.     acc[cur.ability_name].winner_freq += cur.winner_freq;
  47.     acc[cur.ability_name].top_four_freq += cur.top_four_freq;
  48.   } else {
  49.     acc[cur.ability_name] = {
  50.       count: 0,
  51.       numGames: 0,
  52.       freq: 0,
  53.       winner_freq: 0,
  54.       top_four_freq: 0,
  55.     };
  56.   }
  57.   return acc;
  58. }, {});
  59.  
  60. const summarizedDataWithMean = summarizedData;
  61.  
  62. for (let [key, value] of Object.entries(summarizedData)) {
  63.   summarizedData[key].freq =
  64.     Math.round((summarizedData[key].freq / summarizedData[key].count) * 100) /
  65.     100;
  66.   summarizedData[key].winner_freq =
  67.     Math.round(
  68.       (summarizedData[key].winner_freq / summarizedData[key].count) * 100
  69.     ) / 100;
  70.   summarizedData[key].top_four_freq =
  71.     Math.round(
  72.       (summarizedData[key].top_four_freq / summarizedData[key].count) * 100
  73.     ) / 100;
  74. }
  75. console.log(summarizedData);
  76.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement