From 2d59684c3fc1b0a5ee73b73dbe58d06ccf219370 Mon Sep 17 00:00:00 2001 From: NoobishSVK Date: Mon, 19 Feb 2024 21:49:20 +0100 Subject: [PATCH 1/2] bugfixes --- index.js | 21 +++++-- web/index.ejs | 4 +- web/js/3las/fallback/3las.formatreader.js | 2 +- web/js/init.js | 18 ++++++ web/js/main.js | 76 +++++++++++------------ 5 files changed, 73 insertions(+), 48 deletions(-) create mode 100644 web/js/init.js diff --git a/index.js b/index.js index c6eae03..659856e 100644 --- a/index.js +++ b/index.js @@ -138,6 +138,7 @@ function connectToXdrd() { } if (authFlags.authMsg && authFlags.firstClient) { + client.write('x\n'); client.write('T87500\n'); client.write('A0\n'); client.write('G00\n'); @@ -223,9 +224,13 @@ app.get('/static_data', (req, res) => { }); app.get('/server_time', (req, res) => { - const serverTime = new Date().toISOString(); + /*const serverTime = new Date().toISOString(); // Get server time in ISO format + const serverTimezoneOffset = new Date().getTimezoneOffset(); // Get server timezone offset in minutes*/ + + const serverTime = new Date(); // Get current server time + const serverTimeUTC = new Date(serverTime.getTime() - (serverTime.getTimezoneOffset() * 60000)); // Adjust server time to UTC res.json({ - serverTime + serverTime: serverTimeUTC, }); }); @@ -430,11 +435,15 @@ wss.on('connection', (ws, request) => { httpServer.on('upgrade', (request, socket, head) => { - sessionMiddleware(request, {}, () => { - wss.handleUpgrade(request, socket, head, (ws) => { - wss.emit('connection', ws, request); + if (request.url === '/text') { + sessionMiddleware(request, {}, () => { + wss.handleUpgrade(request, socket, head, (ws) => { + wss.emit('connection', ws, request); + }); }); - }); + } else { + socket.destroy(); + } }); /* Serving of HTML files */ diff --git a/web/index.ejs b/web/index.ejs index 46002dc..4430f20 100644 --- a/web/index.ejs +++ b/web/index.ejs @@ -13,7 +13,9 @@ - + + + diff --git a/web/js/3las/fallback/3las.formatreader.js b/web/js/3las/fallback/3las.formatreader.js index d998d3b..6017421 100644 --- a/web/js/3las/fallback/3las.formatreader.js +++ b/web/js/3las/fallback/3las.formatreader.js @@ -150,7 +150,7 @@ var AudioFormatReader = /** @class */ (function () { // Theoretical minimum is 2. // Recommended value is 3 or higher. if (isAndroid) - settings["mpeg"]["MinDecodeFrames"] = 17; + settings["mpeg"]["MinDecodeFrames"] = 3; else settings["mpeg"]["MinDecodeFrames"] = 3; return settings; diff --git a/web/js/init.js b/web/js/init.js new file mode 100644 index 0000000..b2b73f2 --- /dev/null +++ b/web/js/init.js @@ -0,0 +1,18 @@ +getInitialSettings(); + +function getInitialSettings() { + $.ajax({ + url: './static_data', + dataType: 'json', + success: function (data) { + // Use the received data (data.qthLatitude, data.qthLongitude) as needed + localStorage.setItem('qthLatitude', data.qthLatitude); + localStorage.setItem('qthLongitude', data.qthLongitude); + localStorage.setItem('audioPort', data.audioPort); + localStorage.setItem('streamEnabled', data.streamEnabled); + }, + error: function (error) { + console.error('Error:', error); + } + }); +} \ No newline at end of file diff --git a/web/js/main.js b/web/js/main.js index 9a16824..8f3dff3 100644 --- a/web/js/main.js +++ b/web/js/main.js @@ -24,7 +24,6 @@ $(document).ready(function () { canvas.width = canvas.parentElement.clientWidth; canvas.height = canvas.parentElement.clientHeight; - getInitialSettings(); // Start updating the canvas initCanvas(); @@ -156,47 +155,45 @@ $(document).ready(function () { }); }); -function getInitialSettings() { - $.ajax({ - url: './static_data', - dataType: 'json', - success: function (data) { - // Use the received data (data.qthLatitude, data.qthLongitude) as needed - localStorage.setItem('qthLatitude', data.qthLatitude); - localStorage.setItem('qthLongitude', data.qthLongitude); - localStorage.setItem('audioPort', data.audioPort); - localStorage.setItem('streamEnabled', data.streamEnabled); - }, - error: function (error) { - console.error('Error:', error); - } - }); -} - -function getLocalizedTime(serverTime) { - const serverDate = new Date(serverTime); - - // Format server time using options for local time formatting - const options = { year: 'numeric', month: 'short', day: 'numeric', hour: '2-digit', minute: '2-digit', hour12: false }; - const formattedServerTime = serverDate.toLocaleString(navigator.language ? navigator.language : 'en-US', options); - - return formattedServerTime; -} - function getServerTime() { $.ajax({ - url: './server_time', - dataType: 'json', - success: function (data) { - $('#server-time').text(getLocalizedTime(data.serverTime)); - $('#client-time').text(getLocalizedTime(new Date())); - }, - error: function (error) { - console.error('Error:', error); - } + url: "/server_time", + dataType: "json", + success: function(data) { + const serverTimeUtc = data.serverTime; + + const options = { + year: 'numeric', + month: 'short', + day: 'numeric', + hour: '2-digit', + minute: '2-digit', + hour12: false + }; + + const serverOptions = { + ...options, + timeZone: 'Etc/UTC' // Add timeZone only for server time + }; + + const formattedServerTime = new Date(serverTimeUtc).toLocaleString(navigator.language ? navigator.language : 'en-US', serverOptions); + + $("#server-time").text(formattedServerTime); + + // Get and format user's local time directly without specifying timeZone: + const localTime = new Date(); + const formattedLocalTime = new Date(localTime).toLocaleString(navigator.language ? navigator.language : 'en-US', options); + + // Display client time: + $("#client-time").text(formattedLocalTime); + }, + error: function(jqXHR, textStatus, errorThrown) { + console.error("Error fetching server time:", errorThrown); + // Handle error gracefully (e.g., display a fallback message) + } }); -} - + } + function sendPingRequest() { const startTime = new Date().getTime(); @@ -596,7 +593,6 @@ function updateDataElements(parsedData) { $('.data-st').html("ST"); } } - console.log(parsedData.st, parsedData.st_forced); $('#data-rt0').html(processString(parsedData.rt0, parsedData.rt0_errors)); $('#data-rt1').html(processString(parsedData.rt1, parsedData.rt1_errors)); From cdfb8e3d33bfcb6602f145b418b0f42ac8c04b65 Mon Sep 17 00:00:00 2001 From: NoobishSVK Date: Mon, 19 Feb 2024 21:50:17 +0100 Subject: [PATCH 2/2] ver bump --- web/index.ejs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/index.ejs b/web/index.ejs index 4430f20..7b9ca58 100644 --- a/web/index.ejs +++ b/web/index.ejs @@ -270,7 +270,7 @@

FM-DX WebServer
by Noobish & the OpenRadio community.

- v1.0.7 [18/2/2024] + v1.0.8 [19/2/2024]

librds & maps.fmdx.pl by Konrad Kosmatka
3LAS by JoJoBond