]> git.sesse.net Git - ultimatescore/blob - quickl3.js
Fix tally for SBS.
[ultimatescore] / quickl3.js
1 'use strict';
2
3 function load_l3(sheet, prefix, cb)
4 {
5         let req = new XMLHttpRequest();
6         req.onload = function(e) {
7                 let response = JSON.parse(req.responseText);
8                 let l3s = [];
9                 let i;
10                 for (i = 0; i < response.values.length; ++i) {
11                         if (response.values[i][0] === 'Number') {
12                                 ++i;
13                                 break;
14                         }
15                 }
16
17                 for ( ; response.values[i] !== undefined && response.values[i].length >= 3; ++i) {
18                         let number = response.values[i][0];
19                         let display_number = response.values[i][1];
20                         if (number === '') {
21                                 number = display_number;
22                         }
23                         let text = response.values[i][2];
24                         if (display_number !== undefined && display_number !== '') {
25                                 text = "&nbsp;" + display_number + "&nbsp;&nbsp;" + text;
26                         }
27                         text = text.replace(/\n/, '<br />');
28                         let subtext = response.values[i][3];
29                         if (subtext === undefined || subtext === '') {
30                                 subtext = 'TrønDisk 2017';
31                         }
32
33                         l3s[prefix + number] = {
34                                 "raw_text": response.values[i][2],
35                                 "text": text,
36                                 "subtext": subtext
37                         };
38                         let image = response.values[i][4];
39                         if (image !== undefined && image.match(/^file:/) !== null) {
40                                 l3s[prefix + number].image = image;
41                         }
42                 }
43                 cb(l3s, sheet);
44         };
45         req.open('GET', 'https://sheets.googleapis.com/v4/spreadsheets/1RciMlauWxqM9LYKdsY6lPjJbIAcHJpCXTqyZSEHxH3U/values/\'' + sheet + '\'!A1:J50?key=AIzaSyAuP9yQn8g0bSay6r_RpGtpFeIbwprH1TU');
46         req.send();
47 };
48
49 let current_quick_l3s = [];
50
51 function quicklowerthird()
52 {
53         let code = current_quick_l3s[state['code']];
54         if (code === undefined) {
55                 return;
56         }
57         document.getElementById('lowerthird-headline-content').innerHTML = code.text;
58         document.getElementById('lowerthird-subheading-content').innerHTML = code.subtext;
59         let img = document.getElementById('lowerthird-img');
60         if (code.image !== undefined) {
61                 img.src = code.image;
62                 img.style.display = 'inline';
63         } else {
64                 img.style.display = 'none';
65         }
66         showlowerthird();
67
68         if (state['code'].match(/^C/) === null) {
69                 setTimeout(function() { hidelowerthird(); }, 4000);
70         } else {
71                 setTimeout(function() { hidelowerthird(); }, 6000);
72         }
73 }
74
75 function loadquickl3s(sheets)
76 {
77         let newl3s = {};
78         let num_left = 1;
79
80         for (let prop in sheets) {
81                 if (sheets.hasOwnProperty(prop)) {
82                         ++num_left;
83                 }
84         }
85
86         let cb = function(response, group_name) {
87                 for (let p in response) {
88                         if (response.hasOwnProperty(p)) {
89                                 newl3s[p] = response[p];
90                         }
91                 }
92                 if (--num_left == 0) {
93                         current_quick_l3s = newl3s;
94                 }
95         };
96
97         for (let prop in sheets) {
98                 if (sheets.hasOwnProperty(prop)) {
99                         load_l3(sheets[prop], prop, cb);
100                 }
101         }
102         load_l3('Calls', 'C', cb);
103 }
104
105 // Start by loading calls only
106 loadquickl3s({});