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