Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var startTime = "2016-08-10T12:00:00.000Z"; //In ISO-8601 format, please replace with necessary value
- var endTime = "2016-08-15T12:00:00.000Z"; //In ISO-8601 format, please replace with necessary value
- var dataHolder = sessionStorage.getItem('dataHolder');
- if (!dataHolder) {
- var userList = ["bladesoframen", "bladesoframen", "dragonslayer_07", "Mattemery"]; //names go in pairs, psn username followed by forum name
- dataHolder = {};
- dataHolder.userHolder = [];
- dataHolder.gameHolder = {};
- dataHolder.currentUserIndex = 0;
- //initiatialize values for every user
- for(var i= 0; i < (userList.length / 2); i++) {
- dataHolder.userHolder[i] = {};
- dataHolder.userHolder[i].userName = userList[2*i];
- dataHolder.userHolder[i].forumUserName = userList[(2*i)+1];
- dataHolder.userHolder[i].trophyCount = 0;
- dataHolder.userHolder[i].platinumCount = 0;
- dataHolder.userHolder[i].gameArray = [];
- dataHolder.userHolder[i].platinumGameArray = [];
- }
- }
- else {
- dataHolder = JSON.parse(dataHolder);
- }
- var selectedUserInfo = dataHolder.userHolder[dataHolder.currentUserIndex];
- var oldTrophyCount = selectedUserInfo.trophyCount
- var trophyRows = document.querySelectorAll("#content .box .zebra tr");
- var processedStartTime = new Date(startTime);
- var processedEndTime = new Date(endTime);
- for (var i = 0; i < trophyRows.length; i++) {
- var trophyRow = trophyRows[i];
- //the first row in the table has no children so it can cause errors
- if (trophyRow.firstElementChild) {
- //get time the trophy was acheived and see if it is within the date limits before doing other checks
- var timeAcheievedContainer = trophyRow.children[5].children[0];
- var dateObtainedFirstHalf = timeAcheievedContainer.children[0].textContent;
- dateObtainedFirstHalf = dateObtainedFirstHalf.replace(/(\d+)(st|nd|rd|th)/, "$1");
- var dateObtainedSecondHalf = timeAcheievedContainer.children[2].textContent;
- var timeAcheived = new Date(dateObtainedFirstHalf + " " + dateObtainedSecondHalf);
- if (timeAcheived.getTime() > processedStartTime.getTime() && timeAcheived.getTime() < processedEndTime.getTime()) {
- selectedUserInfo.trophyCount++;
- //get name of game and add new ones to array
- var gameName = trophyRow.children[0].children[0].children[0].getAttribute("title");
- if (!selectedUserInfo.gameArray.includes(gameName)) {
- selectedUserInfo.gameArray.push(gameName);
- }
- //check if plat, if so, add to plat count and plat list
- var trophyType = trophyRow.children[9].children[0].children[0].getAttribute("title");
- var plat = false;
- if (trophyType === "Platinum") {
- selectedUserInfo.platinumCount++;
- selectedUserInfo.platinumGameArray.push(gameName)
- plat = true;
- }
- //add game to gamelist
- //if game already exist, add name to list
- //else create entry for the game and add name to list
- //afterward check add plat if there
- if(!dataHolder.gameHolder[gameName]) {
- dataHolder.gameHolder[gameName] = {}
- dataHolder.gameHolder[gameName].platPlayers = [];
- dataHolder.gameHolder[gameName].players = [];
- }
- if (!dataHolder.gameHolder[gameName].players.includes(selectedUserInfo.forumUserName))
- dataHolder.gameHolder[gameName].players.push(selectedUserInfo.forumUserName)
- if (plat && !dataHolder.gameHolder[gameName].platPlayers.includes(selectedUserInfo.forumUserName))
- dataHolder.gameHolder[gameName].platPlayers.push(selectedUserInfo.forumUserName)
- }
- }
- }
- //save everything
- sessionStorage.setItem('dataHolder', JSON.stringify(dataHolder));
- //go to necessary page depending on condition
- //go to next user if trophy count did not change
- //go to next page if trophy count did change
- if (oldTrophyCount === selectedUserInfo.trophyCount) {
- if (dataHolder.currentUserIndex + 1 < dataHolder.userHolder.length) { //if last user, just print the results instead
- dataHolder.currentUserIndex++;
- sessionStorage.setItem('dataHolder', JSON.stringify(dataHolder)); //need to save again for change in userIndex
- var username = dataHolder.userHolder[dataHolder.currentUserIndex].userName;
- var trophyLogUrl = "http://psnprofiles.com/" + username + "/log?dir=desc&p=1";
- window.location.href = trophyLogUrl;
- }
- else {
- //print results for everyone
- for (var k = 0; k < dataHolder.userHolder.length; k++) {
- var selectedUserForPrinting = dataHolder.userHolder[k];
- //don't double count the trophy points in score
- var pageScore = selectedUserForPrinting.trophyCount + ((10 - 1) * selectedUserForPrinting.platinumCount);
- console.log("PSN Username: " + selectedUserForPrinting.userName);
- console.log("Forum Username: " + selectedUserForPrinting.forumUserName)
- console.log("Trophy Count: " + selectedUserForPrinting.trophyCount);
- console.log("Platinum Count: " + selectedUserForPrinting.platinumCount);
- console.log("Score: " + pageScore);
- console.log("Games played: " + selectedUserForPrinting.gameArray.toString());
- console.log("Games with platinum trophies: " + selectedUserForPrinting.platinumGameArray.toString());
- }
- //print results for games
- Object.keys(dataHolder.gameHolder).forEach(function(key,index) {
- var game = dataHolder.gameHolder[key];
- console.log("Game: " + key);
- console.log("Players: " + game.players.toString());
- console.log("Platinum Holders: " + game.platPlayers.toString());
- console.log("Player Count: " + game.players.length);
- console.log("Platinum Count: " + game.platPlayers.length);
- });
- }
- }
- else {
- var currentPage = window.location.href;
- var lastEqualSignIndex = currentPage.lastIndexOf('=');
- var pageNumber = Number(currentPage.substring(lastEqualSignIndex + 1));
- if (isNaN(pageNumber)){
- pageNumber = 1; //in case pagNumber is not in the url
- }
- var trophyLogUrl = "http://psnprofiles.com/" + selectedUserInfo.userName + "/log?dir=desc&p=" + (pageNumber + 1);
- window.location.href = trophyLogUrl;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement