1
0
mirror of https://github.com/KubaPro010/fm-dx-webserver.git synced 2026-02-26 14:11:59 +01:00

Merge branch 'main' into Bkram/audio-proxying

This commit is contained in:
Mark de Bruijn
2024-02-19 21:56:18 +01:00
committed by GitHub
5 changed files with 66 additions and 45 deletions

View File

@@ -146,6 +146,7 @@ function connectToXdrd() {
}
if (authFlags.authMsg && authFlags.firstClient) {
client.write('x\n');
client.write('T87500\n');
client.write('A0\n');
client.write('G00\n');
@@ -231,9 +232,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,
});
});

View File

@@ -13,7 +13,9 @@
<meta property="og:type" content="website">
<meta property="og:image" content="favicon2.png">
<meta property="og:description" content="Server description: <%= tunerDesc %>.">
<script src="js/init.js"></script>
<!-- 3LAS Scripts for Audio streaming -->
<script src="js/3las/util/3las.helpers.js"></script>
<script src="js/3las/util/3las.logging.js"></script>
@@ -268,7 +270,7 @@
<div class="version-info">
<p class="text-small">FM-DX WebServer <br>by <a href="https://noobish.eu" target="_blank">Noobish</a> & the OpenRadio community.</p>
<span style="color: var(--color-3);">v1.0.7 [18/2/2024]</span>
<span style="color: var(--color-3);">v1.0.8 [19/2/2024]</span>
<p class="text-small bottom-50">
<span class="text-smaller">librds & maps.fmdx.pl by <a href="https://fmdx.pl" target="_blank">Konrad Kosmatka</a></span><br>
<span class="text-smaller">3LAS by <a href="https://github.com/JoJoBond/3LAS" target="_blank">JoJoBond</a></span><br>

View File

@@ -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;

18
web/js/init.js Normal file
View File

@@ -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);
}
});
}

View File

@@ -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("<span class='opacity-half'>ST</span>");
}
}
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));