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