]> git.sesse.net Git - ultimatescore/blob - quickl3.js
Start working on the backend for quick lower thirds.
[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                         var subtext = response.values[i][3];
26                         if (subtext === undefined || subtext === '') {
27                                 subtext = 'TrønDisk 2017';
28                         }
29
30                         l3s[prefix + number] = {
31                                 "text": text,
32                                 "subtext": subtext
33                         };
34                 }
35                 cb(l3s, sheet);
36         };
37         req.open('GET', 'https://sheets.googleapis.com/v4/spreadsheets/1RciMlauWxqM9LYKdsY6lPjJbIAcHJpCXTqyZSEHxH3U/values/\'' + sheet + '\'!A1:J50?key=AIzaSyAuP9yQn8g0bSay6r_RpGtpFeIbwprH1TU');
38         req.send();
39 };
40
41 var current_quick_l3s = [];
42
43 function quicklowerthird()
44 {
45         var code = current_quick_l3s[state['code']];
46         if (code === undefined) {
47                 return;
48         }
49         document.getElementById('lowerthird-headline-content').innerHTML = code.text;
50         document.getElementById('lowerthird-subheading-content').innerHTML = code.subtext;
51         showlowerthird();
52
53         if (state['code'].match(/^C/) === null) {
54                 setTimeout(function() { hidelowerthird(); }, 4000);
55         }
56 }
57
58 function loadquickl3s()
59 {
60         var sheet_a = state['A'];
61         var sheet_b = state['B'];
62         var sheet_c = 'Calls';
63
64         var newl3s = {};
65         var num_left = 3;
66
67         var cb = function(response, group_name) {
68                 for (var p in response) {
69                         if (response.hasOwnProperty(p)) {
70                                 newl3s[p] = response[p];
71                         }
72                 }
73                 if (--num_left == 0) {
74                         current_quick_l3s = newl3s;
75                 }
76         };
77
78         load_l3(sheet_a, 'A', cb);
79         load_l3(sheet_b, 'B', cb);
80         load_l3(sheet_c, 'C', cb);
81 }
82
83 // Test
84 state = { 'A': 'TFK', 'B': 'ESK' };
85 loadquickl3s();