]> git.sesse.net Git - ultimatescore/blobdiff - carousel.js
Add some support in the client for reading key events from a non-core IPv6 Buddy.
[ultimatescore] / carousel.js
index 3db806b4d58ec064ff036fc2de8bee50f6e97e72..3d8d20f03220005760af088b40819a138df13981 100644 (file)
@@ -187,7 +187,8 @@ rank = function(games, teams, start_rank, tiebreakers) {
        for (i = 0; i < games.length; ++i) {
                var idx1 = teams_to_idx[games[i].name1];
                var idx2 = teams_to_idx[games[i].name2];
-               if (idx1 !== undefined && idx2 !== undefined) {
+               if (idx1 !== undefined && idx2 !== undefined &&
+                   !isNaN(games[i].score1) && isNaN(games[i].score2)) {
                        teams[idx1].h2h_gd += games[i].score1;
                        teams[idx1].h2h_gd -= games[i].score2;
                        teams[idx2].h2h_gd += games[i].score2;
@@ -251,15 +252,27 @@ parse_teams_from_spreadsheet = function(response) {
 
 parse_games_from_spreadsheet = function(response, group_name, include_unplayed) {
        var games = [];
-       for (var i = 12; response.values[i] !== undefined && response.values[i].length >= 1; ++i) {
+       var i;
+       for (i = 0; i < response.values.length; ++i) {
+               if (response.values[i][0] === 'Results') {
+                       i += 2;
+                       break;
+               }
+       }
+
+       for ( ; response.values[i] !== undefined && response.values[i].length >= 1; ++i) {
                if ((response.values[i][2] && response.values[i][3]) || include_unplayed) {
+                       var real_group_name = response.values[i][8];
+                       if (real_group_name === undefined) {
+                               real_group_name = group_name;
+                       }
                        games.push({
                                "name1": response.values[i][0],
                                "name2": response.values[i][1],
                                "score1": parseInt(response.values[i][2]),
                                "score2": parseInt(response.values[i][3]),
                                "streamtime": response.values[i][7],
-                               "group_name": group_name
+                               "group_name": real_group_name
                        });
                }
        }
@@ -280,6 +293,7 @@ var display_group_parsed = function(teams, games, group_name)
                var idx1 = teams_to_idx[games[i].name1];
                var idx2 = teams_to_idx[games[i].name2];
                if (games[i].score1 === undefined || games[i].score2 === undefined ||
+                   isNaN(games[i].score1) || isNaN(games[i].score2) ||
                    idx1 === undefined || idx2 === undefined ||
                    games[i].score1 == games[i].score2) {
                        continue;
@@ -400,7 +414,7 @@ var display_stream_schedule_parsed = function(teams, games) {
 
        // Pick out a reasonable place to start the list. We'll show the last
        // completed match and start from there.
-       var max_list_len = 7;
+       var max_list_len = 8;
        var start_idx = games.length - 1;
        for (var i = 0; i < games.length; ++i) {
                if (isNaN(games[i].score1) || isNaN(games[i].score2) &&
@@ -450,7 +464,7 @@ var get_group = function(group_name, cb)
        req.onload = function(e) {
                cb(JSON.parse(req.responseText), group_name);
        };
-       req.open('GET', 'https://sheets.googleapis.com/v4/spreadsheets/1CwRHQtpokVMGTPJu2FYYG-6rnG7OfISIcEHwBfXh-Y4/values/\'' + group_name + '\'!A1:H25?key=AIzaSyAuP9yQn8g0bSay6r_RpGtpFeIbwprH1TU');
+       req.open('GET', 'https://sheets.googleapis.com/v4/spreadsheets/1CwRHQtpokVMGTPJu2FYYG-6rnG7OfISIcEHwBfXh-Y4/values/\'' + group_name + '\'!A1:J50?key=AIzaSyAuP9yQn8g0bSay6r_RpGtpFeIbwprH1TU');
        req.send();
 };
 
@@ -470,7 +484,7 @@ var showschedule = function()
 {
        var teams = [];
        var games = [];
-       var num_left = 5;
+       var num_left = 3;
 
        var cb = function(response, group_name) {
                teams = teams.concat(parse_teams_from_spreadsheet(response));
@@ -482,9 +496,7 @@ var showschedule = function()
 
        get_group('Group A', cb);
        get_group('Group B', cb);
-       get_group('Semifinals', cb);
-       get_group('Bronze final', cb);
-       get_group('Final', cb);
+       get_group('Playoffs', cb);
 };
 
 var do_series = function(series)
@@ -506,7 +518,7 @@ var showcarousel = function()
        var games_per_group = [];
        var combined_teams = [];
        var combined_games = [];
-       var num_left = 5;
+       var num_left = 3;
 
        var cb = function(response, group_name) {
                var teams = parse_teams_from_spreadsheet(response);
@@ -530,15 +542,13 @@ var showcarousel = function()
 
        get_group('Group A', cb);
        get_group('Group B', cb);
-       get_group('Semifinals', cb);
-       get_group('Bronze final', cb);
-       get_group('Final', cb);
+       get_group('Playoffs', cb);
 };
 
 var stopcarousel = function()
 {
-       hidetable();
        if (carousel_timeout !== null) {
+               hidetable();
                clearTimeout(carousel_timeout);
                carousel_timeout = null;
        }