From 2d4f4515c4ddcbc7fc3868c87d5bc41c1ebba35e Mon Sep 17 00:00:00 2001 From: "Steinar H. Gunderson" Date: Sun, 3 Oct 2021 14:13:49 +0200 Subject: [PATCH] Move around the handling of quick lower thirds. The extra info stuff is now neatly hidden away to the right of the info field, so nobody really gets confused anymore (it can be blank, and will pick up the team name). Also, fake numbers are automatically added as needed. --- quickl3.js | 52 +++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 45 insertions(+), 7 deletions(-) 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]; } -- 2.39.2