Advertisement
twx0r67

Valo_mmr_try

Dec 28th, 2022 (edited)
30
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.91 KB | Gaming | 0 0
  1. ((
  2. /** @type {string} */ streamUptimeString,
  3. /** @type {string} */ streamStartDateString,
  4. /** @type {string} */ urlEncodedGetMmrHistoryResponseJson,
  5. ) => {
  6. /* streamStartDateString will be a date string even if the channel is not currently live (the date will be the current
  7. date). This may be a Nightbot bug. This is why streamUptimeString is needed to check whether the channel is live */
  8.  
  9. if (/\bnot live\b/i.test(streamUptimeString)) {
  10. return 'Pandi is not live now';
  11. }
  12.  
  13. const streamStartDate = new Date(streamStartDateString);
  14. if (Number.isNaN(streamStartDate.valueOf())) {
  15. return `Failed to parse stream start date: ${streamStartDateString}`.slice(0, 400);
  16. }
  17.  
  18. const getMmrHistoryResponseJson = decodeURIComponent(urlEncodedGetMmrHistoryResponseJson);
  19. if (/^Error Connecting To Remote Server\b/i.test(getMmrHistoryResponseJson)) {
  20. return getMmrHistoryResponseJson;
  21. }
  22.  
  23. try {
  24. /** @type {{
  25. readonly data: ReadonlyArray<{
  26. readonly mmr_change_to_last_game: number;
  27. readonly date_raw: number;
  28. }>;
  29. }} */
  30. const getMmrHistoryResponse = JSON.parse(getMmrHistoryResponseJson);
  31.  
  32. let mmrChangeThisStream = 0;
  33. let winCountThisStream = 0;
  34. let lossCountThisStream = 0;
  35. for (const {date_raw: dateUnixS, mmr_change_to_last_game: mmrChange} of getMmrHistoryResponse.data) {
  36. const date = new Date(dateUnixS * 1000);
  37. if (date >= streamStartDate) {
  38. mmrChangeThisStream += mmrChange;
  39.  
  40. if (mmrChange > 0) {
  41. winCountThisStream++;
  42. } else {
  43. lossCountThisStream++;
  44. }
  45. }
  46. }
  47.  
  48. return `This Stream Pandi is ${mmrChangeThisStream > 0 ? 'UP ' : 'DOWN '} ${mmrChangeThisStream} RR, W/L: ${winCountThisStream}/${lossCountThisStream}`;
  49. } catch (e) {
  50. return `Failed to parse MMR history: ${e.message}: ${getMmrHistoryResponseJson}`.slice(0, 400);
  51. }
  52. })
Tags: #Valo_MMR
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement