'use strict';
+function jsonclone(x)
+{
+ return JSON.parse(JSON.stringify(x));
+}
+
// Log with deep clone, so that the browser will show the object at time of log,
// instead of what it looks like at time of view.
function dlog()
{
let args = [];
for (const arg of arguments) {
- args.push(JSON.parse(JSON.stringify(arg)));
+ args.push(jsonclone(arg));
}
console.log(args);
}
return games;
};
-function apply_games_to_teams(games, teams)
+function apply_games_to_teams(games, teams, ignored_teams, ret_ignored_games)
{
let teams_to_idx = make_teams_to_idx(teams);
+ let ignored_teams_idx;
+ if (ignored_teams === undefined) {
+ ignored_teams_idx = [];
+ } else {
+ ignored_teams_idx = make_teams_to_idx(ignored_teams);
+ }
+ for (let i = 0; i < teams.length; ++i) {
+ teams[i].nplayed = 0;
+ teams[i].goals = 0;
+ teams[i].gd = 0;
+ teams[i].pts = 0;
+ }
for (let i = 0; i < games.length; ++i) {
let idx1 = teams_to_idx[games[i].name1];
let idx2 = teams_to_idx[games[i].name2];
games[i].score1 == games[i].score2) {
continue;
}
+
+ let ignored_idx1 = ignored_teams_idx[games[i].name1];
+ let ignored_idx2 = ignored_teams_idx[games[i].name2];
+ if (ignored_idx1 !== undefined || ignored_idx2 !== undefined) {
+ if (ret_ignored_games !== undefined) {
+ // Figure out whether the fifth we're ignoring was only picked out arbitrarily
+ // (ie., there's a tie for 5th); if so, mark it as such.
+ let arbitrary = false;
+ if (ignored_idx1 !== undefined && ignored_teams[ignored_idx1].rank < 5) {
+ arbitrary = true;
+ } else if (ignored_idx2 !== undefined && ignored_teams[ignored_idx2].rank < 5) {
+ arbitrary = true;
+ }
+ ret_ignored_games.push([teams[idx1].shortname, teams[idx2].shortname, arbitrary]);
+ }
+ continue;
+ }
++teams[idx1].nplayed;
++teams[idx2].nplayed;
teams[idx1].goals += games[i].score1;
let idx1 = teams_to_idx[games[i].name1];
let idx2 = teams_to_idx[games[i].name2];
if (idx1 !== undefined) {
- ++teams[idx1].ngames;
+ ++teams[idx1].ngames; // FIXME: shouldn't nplayed be just as good?
}
if (idx2 !== undefined) {
++teams[idx2].ngames;
{
let teams = [];
let games = [];
- let num_left = 5;
+ let groups_to_get = [
+ 'Group A',
+ 'Group B',
+ // 'Group C',
+ // 'Playoffs 9th-13th',
+ 'Playoffs'
+ ];
+ let num_left = groups_to_get.length;
let cb = function(response, group_name) {
teams = teams.concat(parse_teams_from_spreadsheet(response));
}
};
- get_group('Group A', cb);
- get_group('Group B', cb);
- get_group('Group C', cb);
- get_group('Playoffs', cb);
- get_group('Playoffs 9th-13th', cb);
+ for (const group of groups_to_get) {
+ get_group(group, cb);
+ }
};
function do_series(series)
let games_per_group = [];
let combined_teams = [];
let combined_games = [];
- let num_left = 5;
+ let groups_to_get = [
+ 'Group A',
+ 'Group B',
+ // 'Group C',
+ // 'Playoffs 9th-13th',
+ 'Playoffs'
+ ];
+ let num_left = groups_to_get.length;
let cb = function(response, group_name) {
let teams = parse_teams_from_spreadsheet(response);
[ 13000, function() { display_group_parsed(teams_per_group['Group A'], games_per_group['Group A'], 'Group A'); } ],
[ 2000, function() { hidetable(); } ],
[ 13000, function() { display_group_parsed(teams_per_group['Group B'], games_per_group['Group B'], 'Group B'); } ],
- [ 2000, function() { hidetable(); } ],
- [ 13000, function() { display_group_parsed(teams_per_group['Group C'], games_per_group['Group C'], 'Group C'); } ],
- [ 2000, function() { hidetable(); } ],
- [ 13000, function() { display_group_parsed(teams_per_group['Playoffs 9th-13th'], games_per_group['Playoffs 9th-13th'], 'Playoffs 9th–13th'); } ],
[ 2000, function() { hidetable(); } ]
];
let num_pages = find_num_pages(combined_games);
}
};
- get_group('Group A', cb);
- get_group('Group B', cb);
- get_group('Group C', cb);
- get_group('Playoffs 9th-13th', cb);
- get_group('Playoffs', cb);
+ for (const group of groups_to_get) {
+ get_group(group, cb);
+ }
};
function stopcarousel()