Advertisement
Guest User

Untitled

a guest
Aug 16th, 2016
209
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.84 KB | None | 0 0
  1. var startTime = "2016-08-10T12:00:00.000Z"; //In ISO-8601 format, please replace with necessary value
  2. var endTime = "2016-08-15T12:00:00.000Z"; //In ISO-8601 format, please replace with necessary value
  3. var dataHolder = sessionStorage.getItem('dataHolder');
  4. if (!dataHolder) {
  5. var userList = ["bladesoframen", "bladesoframen", "dragonslayer_07", "Mattemery"]; //names go in pairs, psn username followed by forum name
  6. dataHolder = {};
  7. dataHolder.userHolder = [];
  8. dataHolder.gameHolder = {};
  9. dataHolder.currentUserIndex = 0;
  10. //initiatialize values for every user
  11. for(var i= 0; i < (userList.length / 2); i++) {
  12. dataHolder.userHolder[i] = {};
  13. dataHolder.userHolder[i].userName = userList[2*i];
  14. dataHolder.userHolder[i].forumUserName = userList[(2*i)+1];
  15. dataHolder.userHolder[i].trophyCount = 0;
  16. dataHolder.userHolder[i].platinumCount = 0;
  17. dataHolder.userHolder[i].gameArray = [];
  18. dataHolder.userHolder[i].platinumGameArray = [];
  19. }
  20. }
  21. else {
  22. dataHolder = JSON.parse(dataHolder);
  23. }
  24.  
  25. var selectedUserInfo = dataHolder.userHolder[dataHolder.currentUserIndex];
  26. var oldTrophyCount = selectedUserInfo.trophyCount
  27. var trophyRows = document.querySelectorAll("#content .box .zebra tr");
  28. var processedStartTime = new Date(startTime);
  29. var processedEndTime = new Date(endTime);
  30.  
  31. for (var i = 0; i < trophyRows.length; i++) {
  32. var trophyRow = trophyRows[i];
  33. //the first row in the table has no children so it can cause errors
  34. if (trophyRow.firstElementChild) {
  35. //get time the trophy was acheived and see if it is within the date limits before doing other checks
  36. var timeAcheievedContainer = trophyRow.children[5].children[0];
  37. var dateObtainedFirstHalf = timeAcheievedContainer.children[0].textContent;
  38. dateObtainedFirstHalf = dateObtainedFirstHalf.replace(/(\d+)(st|nd|rd|th)/, "$1");
  39. var dateObtainedSecondHalf = timeAcheievedContainer.children[2].textContent;
  40. var timeAcheived = new Date(dateObtainedFirstHalf + " " + dateObtainedSecondHalf);
  41. if (timeAcheived.getTime() > processedStartTime.getTime() && timeAcheived.getTime() < processedEndTime.getTime()) {
  42. selectedUserInfo.trophyCount++;
  43.  
  44. //get name of game and add new ones to array
  45. var gameName = trophyRow.children[0].children[0].children[0].getAttribute("title");
  46. if (!selectedUserInfo.gameArray.includes(gameName)) {
  47. selectedUserInfo.gameArray.push(gameName);
  48. }
  49.  
  50. //check if plat, if so, add to plat count and plat list
  51. var trophyType = trophyRow.children[9].children[0].children[0].getAttribute("title");
  52. var plat = false;
  53. if (trophyType === "Platinum") {
  54. selectedUserInfo.platinumCount++;
  55. selectedUserInfo.platinumGameArray.push(gameName)
  56. plat = true;
  57. }
  58.  
  59. //add game to gamelist
  60. //if game already exist, add name to list
  61. //else create entry for the game and add name to list
  62. //afterward check add plat if there
  63. if(!dataHolder.gameHolder[gameName]) {
  64. dataHolder.gameHolder[gameName] = {}
  65. dataHolder.gameHolder[gameName].platPlayers = [];
  66. dataHolder.gameHolder[gameName].players = [];
  67. }
  68. if (!dataHolder.gameHolder[gameName].players.includes(selectedUserInfo.forumUserName))
  69. dataHolder.gameHolder[gameName].players.push(selectedUserInfo.forumUserName)
  70. if (plat && !dataHolder.gameHolder[gameName].platPlayers.includes(selectedUserInfo.forumUserName))
  71. dataHolder.gameHolder[gameName].platPlayers.push(selectedUserInfo.forumUserName)
  72. }
  73. }
  74. }
  75.  
  76. //save everything
  77. sessionStorage.setItem('dataHolder', JSON.stringify(dataHolder));
  78.  
  79. //go to necessary page depending on condition
  80. //go to next user if trophy count did not change
  81. //go to next page if trophy count did change
  82. if (oldTrophyCount === selectedUserInfo.trophyCount) {
  83. if (dataHolder.currentUserIndex + 1 < dataHolder.userHolder.length) { //if last user, just print the results instead
  84. dataHolder.currentUserIndex++;
  85. sessionStorage.setItem('dataHolder', JSON.stringify(dataHolder)); //need to save again for change in userIndex
  86. var username = dataHolder.userHolder[dataHolder.currentUserIndex].userName;
  87. var trophyLogUrl = "http://psnprofiles.com/" + username + "/log?dir=desc&p=1";
  88. window.location.href = trophyLogUrl;
  89. }
  90. else {
  91. //print results for everyone
  92. for (var k = 0; k < dataHolder.userHolder.length; k++) {
  93. var selectedUserForPrinting = dataHolder.userHolder[k];
  94. //don't double count the trophy points in score
  95. var pageScore = selectedUserForPrinting.trophyCount + ((10 - 1) * selectedUserForPrinting.platinumCount);
  96.  
  97. console.log("PSN Username: " + selectedUserForPrinting.userName);
  98. console.log("Forum Username: " + selectedUserForPrinting.forumUserName)
  99. console.log("Trophy Count: " + selectedUserForPrinting.trophyCount);
  100. console.log("Platinum Count: " + selectedUserForPrinting.platinumCount);
  101. console.log("Score: " + pageScore);
  102. console.log("Games played: " + selectedUserForPrinting.gameArray.toString());
  103. console.log("Games with platinum trophies: " + selectedUserForPrinting.platinumGameArray.toString());
  104. }
  105. //print results for games
  106. Object.keys(dataHolder.gameHolder).forEach(function(key,index) {
  107. var game = dataHolder.gameHolder[key];
  108. console.log("Game: " + key);
  109. console.log("Players: " + game.players.toString());
  110. console.log("Platinum Holders: " + game.platPlayers.toString());
  111. console.log("Player Count: " + game.players.length);
  112. console.log("Platinum Count: " + game.platPlayers.length);
  113. });
  114. }
  115. }
  116. else {
  117. var currentPage = window.location.href;
  118. var lastEqualSignIndex = currentPage.lastIndexOf('=');
  119. var pageNumber = Number(currentPage.substring(lastEqualSignIndex + 1));
  120. if (isNaN(pageNumber)){
  121. pageNumber = 1; //in case pagNumber is not in the url
  122. }
  123.  
  124. var trophyLogUrl = "http://psnprofiles.com/" + selectedUserInfo.userName + "/log?dir=desc&p=" + (pageNumber + 1);
  125. window.location.href = trophyLogUrl;
  126. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement