-
-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathupdateActive.js
More file actions
98 lines (96 loc) · 3.53 KB
/
Copy pathupdateActive.js
File metadata and controls
98 lines (96 loc) · 3.53 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
const fs = require('fs');
function updateSettings(data, socket, liveUpdate) {
fs.readFile(__dirname + '/app/json/settings.json', 'utf8', (err, data_old) => {
if (err)
throw err;
var json = JSON.parse(data);
var data_old_obj = JSON.parse(data_old);
Object.entries(json).forEach(entry => {
let [indx, element] = entry;
switch (element) {
default:
if(indx == "MaxInning" && element<1) element = 1;
data_old_obj[indx] = element;
break;
}
});
if(json?.fibsStreaming && data_old_obj?.fibsStreamingCode != "")
liveUpdate(socket);
fs.writeFile(__dirname + '/app/json/settings.json', JSON.stringify(data_old_obj, null, 4), (err) => {
if (err)
throw err;
});
socket.emit('updateSettings', data_old_obj);
socket.broadcast.emit('updateSettings', data_old_obj);
});
}
function updateActive(data, socket) {
const filepath = __dirname + '/app/json/scoreboards.json';
fs.readFile(filepath, 'utf8', (err, scoreboard_old) => {
if (err)
return console.error(err);
const jsonOld = JSON.parse(scoreboard_old);
const changes = {};
if (JSON.parse(data).AllOff == true) {
Object.keys(jsonOld).forEach((indx) => { jsonOld[indx] = false; changes[indx] = false; });
} else {
const json = JSON.parse(data);
Object.entries(json).forEach(([indx, element]) => { jsonOld[indx] = element; changes[indx] = element; });
}
fs.writeFile(filepath, JSON.stringify(jsonOld, null, 4), (err) => {
if (err) throw err;
const changesJson = JSON.stringify(changes);
socket.emit('updateActive', changesJson);
socket.broadcast.emit('updateActive', changesJson);
});
});
}
function updateOfficial(data, socket) {
fs.readFile(__dirname + '/app/json/umpiresScorers.json', 'utf8', (err, umpiresScorers_old) => {
if (err) {
console.error(err);
return;
}
const jsonOld = JSON.parse(umpiresScorers_old);
const changes = {};
Object.entries(data).forEach(([index, element]) => {
Object.entries(element).forEach(([index2, element2]) => {
Object.entries(element2).forEach(([index3, element3]) => {
if (jsonOld[index][index2][index3] !== element3) {
jsonOld[index][index2][index3] = element3;
if (!changes[index])
changes[index] = {};
if (!changes[index][index2])
changes[index][index2] = {};
changes[index][index2][index3] = element3;
}
});
});
});
writeToFile(jsonOld, socket, changes);
});
}
function writeToFile(jsonOld, socket, changes) {
fs.writeFile(__dirname + '/app/json/umpiresScorers.json', JSON.stringify(jsonOld, null, 4), (err) => {
if (err)
throw err;
socket.emit('updateOffices', changes);
socket.broadcast.emit('updateOffices', changes);
});
}
function resetAllStaff(socket) {
fs.readFile(__dirname + '/app/json/umpiresScorers.json', 'utf8', (err) => {
if (err) {
console.error(err);
return;
}
const json = { umpires: { HP: { surname: "HP Surname", name: "Name", active: true }, B1: { surname: "1B Surname", name: "Name", active: true }, B2: { surname: "2B Surname", name: "Name", active: true }, B3: { surname: "3B Surname", name: "Name", active: true } }, "scorers": { "head": { surname: "Head Surname", name: "Name", active: true }, "second": { surname: "Second Surname", name: "Name", active: true }, "third": { surname: "Third Surname", name: "Name", active: true } }, "commentators": { "main": { surname: "Sportcaster Surname", name: "Name" }, "technical": { surname: "Technical Surname", name: "Name" } } };
writeToFile(json, socket, json);
});
}
module.exports = {
updateActive,
updateOfficial,
resetAllStaff,
updateSettings
};