X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=quickl3.js;h=8977f7fdb5b13ebe57a55f7973a86be9da726dd7;hb=HEAD;hp=61628aa4c2a0c0f1298a811bf9327cdeeb47858d;hpb=a1e792a7a3221797adeb013e92882ff25bd9a48e;p=ultimatescore diff --git a/quickl3.js b/quickl3.js index 61628aa..8977f7f 100644 --- a/quickl3.js +++ b/quickl3.js @@ -15,31 +15,69 @@ function load_l3(sheet, prefix, cb) } } + let players = []; for ( ; response.values[i] !== undefined && response.values[i].length >= 3; ++i) { - let number = response.values[i][0]; - let display_number = response.values[i][1]; + players.push({ + "number": response.values[i][0], + "display_number": response.values[i][1], + "text": response.values[i][2], + "subtext": response.values[i][4], // To the right of the “info” column. + "image": response.values[i][5] + }); + } + + // Assign fake numbers to those that have none. + let used_numbers = {}; + for (const player of players) { + used_numbers[player.number] = 1; + } + for (let player of players) { + let num = player.number; + if (num !== '' && num !== undefined) { + continue; + } + num = parseInt(player.display_number); + if (num >= 1 && num <= 999 && !used_numbers.hasOwnProperty(num)) { + player.number = '' + num; + } + } + for (let player of players) { + let num = player.number; + if (num !== '' && num !== undefined) { + continue; + } + num = 1; + while (used_numbers.hasOwnProperty(num)) { ++num; } + player.number = '' + num; + used_numbers[num] = 1; + } + + for (const player of players) { + let number = player.number; + let display_number = player.display_number; if (number === '') { number = display_number; } - let text = response.values[i][2]; + let text = player.text; if (display_number !== undefined && display_number !== '') { text = " " + display_number + "  " + text; } text = text.replace(/\n/, '
'); - let subtext = response.values[i][3]; + let subtext = player.subtext; if (subtext === undefined || subtext === '') { - subtext = ultimateconfig['tournament_title']; + // subtext = ultimateconfig['tournament_title']; + subtext = response.values[0][0]; } for (const num of number.split(/;/)) { // Support multiple numbers. l3s[prefix + num] = { "num": num, - "raw_text": response.values[i][2], + "raw_text": player.text, "text": text, "subtext": subtext }; - let image = response.values[i][4]; + let image = player.image; if (image !== undefined && image.match(/^file:/) !== null) { l3s[prefix + num].image = image.match(/^file:(.*)/)[1]; }