Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function createLogSpreadsheet() {
- var shLogs = newSheet('Logs');
- // Make the sheet 1 by 1 so because resizing after inserting info is broken
- //if (shLogs.getMaxColumns() !== 1) {shLogs.deleteColumns(1,shLogs.getMaxColumns()-1);}
- //if (shLogs.getMaxRows() !== 1) {shLogs.deleteRows(1,shLogs.getMaxRows()-1);}
- // Find out what pages we need to import
- var jsonResultPages = ImportJSON('http://api.etf2l.org/competition/' + competitionId + '/results.json', '/page/total_pages', 'noHeaders')[0][0];
- var jsonMatchPages = ImportJSON('http://api.etf2l.org/competition/' + competitionId + '/matches.json', '/page/total_pages', 'noHeaders')[0][0];
- var clan1Id = [];
- var clan1Name= [];
- var clan2Id =[];
- var clan2Name = [];
- var skillLevel = [];
- var week = [];
- var map = [];
- // Import JSON for each page
- for (var i = 1; i<=jsonResultPages; ++i) {
- clan1Id = clan1Id.concat(ImportJSON('http://api.etf2l.org/competition/' + competitionId + '/results/' + i + '.json', '/results/clan1/id', 'noHeaders'));
- clan1Name = clan1Name.concat(ImportJSON('http://api.etf2l.org/competition/' + competitionId + '/results/' + i + '.json', '/results/clan1/name', 'noHeaders'));
- clan2Id = clan2Id.concat(ImportJSON('http://api.etf2l.org/competition/' + competitionId + '/results/' + i + '.json', '/results/clan2/id', 'noHeaders'));
- clan2Name = clan2Name.concat(ImportJSON('http://api.etf2l.org/competition/' + competitionId + '/results/' + i + '.json', '/results/clan2/name', 'noHeaders'));
- skillLevel = skillLevel.concat(ImportJSON('http://api.etf2l.org/competition/' + competitionId + '/results/' + i + '.json', '/results/division/tier', 'noHeaders'));
- week = week.concat(ImportJSON('http://api.etf2l.org/competition/' + competitionId + '/results/' + i + '.json', '/results/week', 'noHeaders'));
- map = map.concat(ImportJSON('http://api.etf2l.org/competition/' + competitionId + '/results/' + i + '.json', '/results/maps', 'noHeaders'));
- }
- for (var i = 1; i<=jsonMatchPages; ++i) {
- clan1Id = clan1Id.concat(ImportJSON('http://api.etf2l.org/competition/' + competitionId + '/matches/' + i + '.json', '/matches/clan1/id', 'noHeaders'));
- clan1Name = clan1Name.concat(ImportJSON('http://api.etf2l.org/competition/' + competitionId + '/matches/' + i + '.json', '/matches/clan1/name', 'noHeaders'));
- clan2Id = clan2Id.concat(ImportJSON('http://api.etf2l.org/competition/' + competitionId + '/matches/' + i + '.json', '/matches/clan2/id', 'noHeaders'));
- clan2Name = clan2Name.concat(ImportJSON('http://api.etf2l.org/competition/' + competitionId + '/matches/' + i + '.json', '/matches/clan2/name', 'noHeaders'));
- skillLevel = skillLevel.concat(ImportJSON('http://api.etf2l.org/competition/' + competitionId + '/matches/' + i + '.json', '/matches/division/tier', 'noHeaders'));
- week = week.concat(ImportJSON('http://api.etf2l.org/competition/' + competitionId + '/matches/' + i + '.json', '/matches/week', 'noHeaders'));
- map = map.concat(ImportJSON('http://api.etf2l.org/competition/' + competitionId + '/matches/' + i + '.json', '/matches/maps', 'noHeaders'));
- }
- // Import JSON for each page
- for (var i = 1; i <=jsonResultPages; ++i) {
- clan1Id = clan1Id.concat(JSON.parse(UrlFetchApp.fetch('http://api.etf2l.org/competition/' + competitionId + 'matches/' + i + 'json')))
- }
- var numMatches = clan1Id.length;
- var matches = [];
- // Create an object for each match from the JSON we just imported, and push it to an array
- for (var i = 0; i < numMatches; ++i) {
- var match = {};
- match["homeID"] = clan1Id[i];
- match["homeName"] = clan1Name[i];
- match["awayID"] = clan2Id[i];
- match["awayName"] = clan2Name[i];
- match["skillLevel"] = skillLevel[i];
- match["week"] = week[i];
- match["map"] = map[i];
- matches.push(match);
- }
- var weekNumber = Math.max.apply(null, week);
- // Filter out the matches that aren't in the Tier we want
- var tierMatches = matches.filter(function(match) {return match.skillLevel == tier;});
- var weekMatches = [];
- // Put the matches into new arrays, organised by week number, then match number
- // weekMatches[week][match].attribute
- for (var w = 0; w < weekNumber; w++) {
- weekMatches[w] = tierMatches.filter(function(match) {return match.week == w + 1;});
- }
- // Create Table Headings
- shLogs.getRange(1,2).setValue('Home Link');
- shLogs.getRange(1,3).setValue('Home Name');
- shLogs.getRange(1,4).setValue('Away Link');
- shLogs.getRange(1,5).setValue('Away Name');
- shLogs.getRange(1,6).setValue('Map(s)');
- shLogs.getRange(1,7).setValue('Logs');
- shLogs.getRange(1,8).setValue('Logs');
- shLogs.getRange(1,9).setValue('Logs');
- // For each week, create a new week heading, then insert matches
- var row = 1;
- for (var w = 0; w < weekNumber; w++) {
- shLogs.getRange(row,1).setValue('Week ' + (+w + +1));
- row += 1;
- for (i = 0; i < weekMatches[w].length; i++, row++) {
- shLogs.getRange(row,2).setValue("http://etf2l.org/teams/" + weekMatches[w][i].homeID);
- shLogs.getRange(row,3).setValue(weekMatches[w][i].homeName);
- shLogs.getRange(row,4).setValue("http://etf2l.org/teams/" + weekMatches[w][i].awayID);
- shLogs.getRange(row,5).setValue(weekMatches[w][i].awayName);
- shLogs.getRange(row,6).setValue(weekMatches[w][i].map);
- }
- }
- // Resize columns to look clean
- shLogs.setColumnWidth(1,100);
- shLogs.setColumnWidth(2,100);
- shLogs.setColumnWidth(3,200);
- shLogs.setColumnWidth(4,100);
- shLogs.setColumnWidth(5,200);
- shLogs.setColumnWidth(6,300);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement