]> git.sesse.net Git - ultimatescore/blobdiff - update_sheets.js
Enable Exo hack.
[ultimatescore] / update_sheets.js
index 59e41372a4b54557b895ae434ab3143b07dffb12..7776425146c700e58de0e2d61a32c977a2ebdddd 100644 (file)
@@ -68,16 +68,20 @@ function possibly_update_oauth_key(cb) {
 function publish_group_rank(response, group_name)
 {
        let updates = [];
-       let cols = ultimateconfig['score_sheet_cols'][group_name];
+       let config = ultimateconfig['group_cells'][group_name];
+       let cols = config['score_sheet_cols'];
 
        let teams = parse_teams_from_spreadsheet(response);
        let games = parse_games_from_spreadsheet(response, group_name, false);
        apply_games_to_teams(games, teams);
+       teams = filter_teams(teams, response);
 
        // Write the points total to the unsorted columns.
-       for (let i = 0; i < teams.length; ++i) {
-               let row = ultimateconfig['point_total_start_row'] + i;
-               updates.push({ "range": cols[2] + row, "values": [ [ teams[i].pts ] ] });
+       if (config['point_total_start_row'] !== null) {
+               for (let i = 0; i < teams.length; ++i) {
+                       let row = config['point_total_start_row'] + i;
+                       updates.push({ "range": cols[2] + row, "values": [ [ teams[i].pts ] ] });
+               }
        }
 
        let tiebreakers = [];
@@ -85,7 +89,7 @@ function publish_group_rank(response, group_name)
 
        // Write the ranking table, from scratch.
        for (let i = 0; i < teams.length; ++i) {
-               let row = ultimateconfig['ranking_list_start_row'] + i;
+               let row = config['ranking_list_start_row'] + i;
                updates.push({ "range": cols[0] + row, "values": [ [ teams[i].rank ] ] });
                updates.push({ "range": cols[1] + row, "values": [ [ teams[i].mediumname ] ] });
                updates.push({ "range": cols[2] + row, "values": [ [ teams[i].pts ] ] });
@@ -95,7 +99,7 @@ function publish_group_rank(response, group_name)
        if (tiebreakers.length != 0) {
                tb_str = tiebreakers.join("\n");
        }
-       updates.push({ "range": cols[0] + ultimateconfig['ranking_list_explain_row'], "values": [ [ tb_str ] ]});
+       updates.push({ "range": cols[0] + config['ranking_list_explain_row'], "values": [ [ tb_str ] ]});
 
        let json = {
                "valueInputOption": "USER_ENTERED",
@@ -297,6 +301,10 @@ function fill_playoff(replacements, teams) {
                        let score2 = response['values'][row - 1][cols[2]];
                        let game_name = game[4];
                        let game_name2 = game_name.replace("Semi", "semi");
+                       let game_day = game[7];
+                       if (game_day === undefined) {
+                               game_day = 7;  // Sunday.
+                       }
 
                        let range = {
                                "sheetId": ultimateconfig['score_sheet_index'],
@@ -332,7 +340,7 @@ function fill_playoff(replacements, teams) {
                                // Game.
                                updates.push({
                                        "range": "Playoffs!A" + (game_num + 32) + ":J" + (game_num + 32),
-                                       "values": [ [ team1, team2, score1, score2, "", "", "", 7, response['values'][row - 1][1].replace(".",":"), game[6] ] ]
+                                       "values": [ [ team1, team2, score1, score2, "", "", "", game_day, response['values'][row - 1][1].replace(".",":"), game[6] ] ]
                                });
 
                                // Team codes.
@@ -356,7 +364,9 @@ function fill_playoff(replacements, teams) {
                        "requests": meta_updates
                };
                possibly_update_oauth_key(function() {
-                       post_json('https://sheets.googleapis.com/v4/spreadsheets/' + ultimateconfig['score_sheet_id'] + '/values:batchUpdate?key=' + ultimateconfig['api_key'], json, function(response) {}, current_oauth_access_token);
+                       post_json('https://sheets.googleapis.com/v4/spreadsheets/' + ultimateconfig['score_sheet_id'] + '/values:batchUpdate?key=' + ultimateconfig['api_key'], json, function(response) {
+                               get_group('Playoffs 9th-13th', function(response_l) { publish_group_rank(response_l, 'Playoffs 9th-13th'); });
+                       }, current_oauth_access_token);
                        post_json('https://sheets.googleapis.com/v4/spreadsheets/' + ultimateconfig['score_sheet_id'] + ':batchUpdate?key=' + ultimateconfig['api_key'], meta_json, function(response) {}, current_oauth_access_token);
                });
        });
@@ -394,6 +404,7 @@ function get_ranked(response, group_name) {
        let teams = parse_teams_from_spreadsheet(response);
        let games = parse_games_from_spreadsheet(response, group_name, false);
        apply_games_to_teams(games, teams);
+       teams = filter_teams(teams, response);
        let tiebreakers = [];
        teams = rank(games, teams, 1, tiebreakers);
        return teams;