bugfix pack

This commit is contained in:
NoobishSVK
2024-08-29 21:42:14 +02:00
parent d1c0e53da0
commit 7830deabc9
10 changed files with 141 additions and 117 deletions
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "fm-dx-webserver", "name": "fm-dx-webserver",
"version": "1.2.6", "version": "1.2.7",
"description": "FM DX Webserver", "description": "FM DX Webserver",
"main": "index.js", "main": "index.js",
"scripts": { "scripts": {
+22 -18
View File
@@ -292,6 +292,10 @@ function handleData(wss, receivedData, rdsWss) {
initialData.freq = (parsedValue / 1000).toFixed(3); initialData.freq = (parsedValue / 1000).toFixed(3);
dataToSend.freq = (parsedValue / 1000).toFixed(3); dataToSend.freq = (parsedValue / 1000).toFixed(3);
dataToSend.pi = '?'; dataToSend.pi = '?';
rdsWss.clients.forEach((client) => {
client.send("G:\r\nRESET-------\r\n\r\n");
});
} }
break; break;
case receivedLine.startsWith('Z'): // Antenna case receivedLine.startsWith('Z'): // Antenna
@@ -352,31 +356,31 @@ function handleData(wss, receivedData, rdsWss) {
modifiedData += errorsNew.toString(16).padStart(2, '0'); modifiedData += errorsNew.toString(16).padStart(2, '0');
} }
rdsWss.clients.forEach((client) => { rdsWss.clients.forEach((client) => {
let dataString = modifiedData.toString(); let dataString = modifiedData.toString();
let lastTwoChars = dataString.slice(-2); let lastTwoChars = dataString.slice(-2);
let lastByteValue = parseInt(lastTwoChars, 16); let lastByteValue = parseInt(lastTwoChars, 16);
let truncatedString = dataString.slice(0, -2); let truncatedString = dataString.slice(0, -2);
if ((lastByteValue & 0x03) !== 0) { if ((lastByteValue & 0x03) !== 0) {
truncatedString = truncatedString.slice(0, 4) + '----' + truncatedString.slice(8); truncatedString = truncatedString.slice(0, 4) + '----' + truncatedString.slice(8);
} }
if ((lastByteValue & 0x30) !== 0) { if ((lastByteValue & 0x30) !== 0) {
truncatedString = truncatedString.slice(0, 8) + '----' + truncatedString.slice(12); truncatedString = truncatedString.slice(0, 8) + '----' + truncatedString.slice(12);
} }
if ((lastByteValue & 0x0C) !== 0) { if ((lastByteValue & 0x0C) !== 0) {
truncatedString = truncatedString.slice(0, 12) + '----'; truncatedString = truncatedString.slice(0, 12) + '----';
} }
let newDataString = "G:\r\n" + truncatedString + "\r\n\r\n"; let newDataString = "G:\r\n" + truncatedString + "\r\n\r\n";
let finalBuffer = Buffer.from(newDataString, 'utf-8'); let finalBuffer = Buffer.from(newDataString, 'utf-8');
client.send(finalBuffer); client.send(finalBuffer);
}); });
rdsparser.parse_string(rds, modifiedData); rdsparser.parse_string(rds, modifiedData);
legacyRdsPiBuffer = null; legacyRdsPiBuffer = null;
+1 -1
View File
@@ -30,7 +30,7 @@ function fetchTx(freq, piCode, rdsPs) {
return processData(cachedData[freq], piCode, rdsPs); return processData(cachedData[freq], piCode, rdsPs);
} }
const url = "https://maps.fmdx.pl/api?freq=" + freq; const url = "https://maps.fmdx.org/api?freq=" + freq;
return fetch(url) return fetch(url)
.then(response => response.json()) .then(response => response.json())
+2
View File
@@ -79,6 +79,7 @@ input[type="text"], textarea, input[type="password"] {
color: var(--color-text); color: var(--color-text);
background-color: var(--color-1); background-color: var(--color-1);
font-family: 'Titillium Web', sans-serif; font-family: 'Titillium Web', sans-serif;
caret-color: var(--color-4);
} }
#tune-buttons input[type="text"] { #tune-buttons input[type="text"] {
@@ -92,6 +93,7 @@ input[type="text"], textarea, input[type="password"] {
color: var(--color-text); color: var(--color-text);
background-color: var(--color-1-transparent); background-color: var(--color-1-transparent);
font-family: 'Titillium Web', sans-serif; font-family: 'Titillium Web', sans-serif;
caret-color: var(--color-4);
} }
#tune-buttons input[type="text"]:not(.no-bg):not(.no-filter) { #tune-buttons input[type="text"]:not(.no-bg):not(.no-filter) {
BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.7 KiB

After

Width:  |  Height:  |  Size: 6.4 KiB

+1 -1
View File
@@ -12,7 +12,7 @@
<meta property="og:title" content="FM-DX WebServer [<%= tunerName %>]"> <meta property="og:title" content="FM-DX WebServer [<%= tunerName %>]">
<meta property="og:type" content="website"> <meta property="og:type" content="website">
<meta property="og:image" content="favicon.png"> <meta property="og:image" content="https://fmdx.org/img/webserver_icon.png">
<meta property="og:description" content="Server description: <%= tunerDescMeta %>."> <meta property="og:description" content="Server description: <%= tunerDescMeta %>.">
<script src="js/init.js"></script> <script src="js/init.js"></script>
+86 -76
View File
@@ -1,90 +1,100 @@
$(document).ready(function() { $(document).ready(function() {
const protocol = window.location.protocol === 'https:' ? 'wss:' : 'ws:'; const protocol = window.location.protocol === 'https:' ? 'wss:' : 'ws:';
const chatSocket = new WebSocket(`${protocol}//${window.location.host}${window.location.pathname}chat`); const chatSocket = new WebSocket(`${protocol}//${window.location.host}${window.location.pathname}chat`);
let chatMessageCount = 0; let chatMessageCount = 0;
const chatMessages = $('#chat-chatbox'); const chatMessages = $('#chat-chatbox');
const chatMessagesCount = $('.chat-messages-count'); const chatMessagesCount = $('.chat-messages-count');
const chatButton = $('.chatbutton'); const chatButton = $('.chatbutton');
const chatSendInput = $('#chat-send-message'); const chatSendInput = $('#chat-send-message');
const chatIdentityNickname = $('#chat-identity-nickname'); const chatIdentityNickname = $('#chat-identity-nickname');
const chatNicknameInput = $('#chat-nickname'); const chatNicknameInput = $('#chat-nickname');
const chatNicknameSave = $('#chat-nickname-save'); const chatNicknameSave = $('#chat-nickname-save');
chatSocket.onmessage = function(event) { // Function to generate a random string
const messageData = JSON.parse(event.data); function generateRandomString(length) {
const isAdmin = messageData.admin ? '<span style="color: #bada55">[ADMIN]</span>' : ''; const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
let result = '';
for (let i = 0; i < length; i++) {
result += characters.charAt(Math.floor(Math.random() * characters.length));
}
return result;
}
if (messageData.type === 'clientIp') { // Load nickname from localStorage on page load
chatIdentityNickname.html(isAdmin + " " + (savedNickname?.length > 0 ? savedNickname : 'Anonymous User')); let savedNickname = localStorage.getItem('nickname') || `Anonymous User ${generateRandomString(5)}`;
chatIdentityNickname.attr('title', messageData.ip); chatNicknameInput.val(savedNickname);
} else { chatIdentityNickname.text(savedNickname);
const chatMessage = `
<span class="color-2">[${messageData.time}]</span>
${isAdmin} <strong class="color-5" title="IP Address: ${messageData.ip}">${messageData.nickname}</strong>:
<span style="color: var(--color-text-2);">${$('<div/>').text(messageData.message).html()}</span><br>
`;
chatMessages.append(chatMessage);
if (chatMessages.is(':visible')) { chatSocket.onmessage = function(event) {
setTimeout(function() { const messageData = JSON.parse(event.data);
chatMessages.scrollTop(chatMessages[0].scrollHeight); const isAdmin = messageData.admin ? '<span style="color: #bada55">[ADMIN]</span>' : '';
}, 100);
} else {
if (!messageData.history) {
chatMessageCount++;
chatMessagesCount.text(chatMessageCount);
chatMessagesCount.attr("aria-label", "Chat (" + chatMessageCount + " unread)");
chatButton.removeClass('bg-color-2').addClass('bg-color-4');
}
}
}
};
$('.chat-send-message-btn').click(sendMessage); if (messageData.type === 'clientIp') {
chatNicknameSave.click(function() { chatIdentityNickname.html(isAdmin + " " + savedNickname);
const currentNickname = chatNicknameInput.val(); chatIdentityNickname.attr('title', messageData.ip);
localStorage.setItem('nickname', currentNickname); } else {
chatIdentityNickname.text(currentNickname.length > 0 ? currentNickname : 'Anonymous User'); const chatMessage = `
chatNicknameInput.blur(); <span class="color-2">[${messageData.time}]</span>
}); ${isAdmin} <strong class="color-5" title="IP Address: ${messageData.ip}">${messageData.nickname}</strong>:
<span style="color: var(--color-text-2);">${$('<div/>').text(messageData.message).html()}</span><br>
`;
chatMessages.append(chatMessage);
chatButton.click(function() { if (chatMessages.is(':visible')) {
chatMessageCount = 0; setTimeout(function() {
chatMessagesCount.text(chatMessageCount); chatMessages.scrollTop(chatMessages[0].scrollHeight);
chatButton.removeClass('bg-color-4').addClass('bg-color-2'); }, 100);
chatSendInput.focus(); } else {
if (!messageData.history) {
chatMessageCount++;
chatMessagesCount.text(chatMessageCount);
chatMessagesCount.attr("aria-label", "Chat (" + chatMessageCount + " unread)");
chatButton.removeClass('bg-color-2').addClass('bg-color-4');
}
}
}
};
setTimeout(function() { $('.chat-send-message-btn').click(sendMessage);
chatMessages.scrollTop(chatMessages[0].scrollHeight); chatNicknameSave.click(function() {
}, 100); const currentNickname = chatNicknameInput.val().trim() || `Anonymous User ${generateRandomString(5)}`;
}); localStorage.setItem('nickname', currentNickname);
savedNickname = currentNickname; // Update the savedNickname variable
chatIdentityNickname.text(savedNickname);
chatNicknameInput.blur();
});
chatNicknameInput.keypress(function(event) { chatButton.click(function() {
if (event.which === 13) { chatMessageCount = 0;
chatNicknameSave.trigger('click'); chatMessagesCount.text(chatMessageCount);
} chatButton.removeClass('bg-color-4').addClass('bg-color-2');
}); chatSendInput.focus();
chatSendInput.keypress(function(event) { setTimeout(function() {
if (event.which === 13) { chatMessages.scrollTop(chatMessages[0].scrollHeight);
sendMessage(); }, 100);
} });
});
// Load nickname from localStorage on page load chatNicknameInput.keypress(function(event) {
const savedNickname = localStorage.getItem('nickname'); if (event.which === 13) {
if (savedNickname) { chatNicknameSave.trigger('click');
chatNicknameInput.val(savedNickname); }
} });
function sendMessage() { chatSendInput.keypress(function(event) {
const nickname = savedNickname || 'Anonymous user'; if (event.which === 13) {
const message = chatSendInput.val().trim(); sendMessage();
}
});
if (message) { function sendMessage() {
const messageData = { nickname, message }; const nickname = savedNickname || `Anonymous User ${generateRandomString(5)}`;
chatSocket.send(JSON.stringify(messageData)); const message = chatSendInput.val().trim();
chatSendInput.val('');
if (message) {
const messageData = { nickname, message };
chatSocket.send(JSON.stringify(messageData));
chatSendInput.val('');
}
} }
}
}); });
+11 -2
View File
@@ -1,11 +1,12 @@
var currentDate = new Date('Aug 1, 2024 20:00:00'); var currentDate = new Date('Aug 28, 2024 22:00:00');
var day = currentDate.getDate(); var day = currentDate.getDate();
var month = currentDate.getMonth() + 1; // Months are zero-indexed, so add 1 var month = currentDate.getMonth() + 1; // Months are zero-indexed, so add 1
var year = currentDate.getFullYear(); var year = currentDate.getFullYear();
var formattedDate = day + '/' + month + '/' + year; var formattedDate = day + '/' + month + '/' + year;
var currentVersion = 'v1.2.6a [' + formattedDate + ']'; var currentVersion = 'v1.2.7 [' + formattedDate + ']';
getInitialSettings(); getInitialSettings();
removeUrlParameters(); // Call this function to remove URL parameters
function getInitialSettings() { function getInitialSettings() {
$.ajax({ $.ajax({
@@ -27,3 +28,11 @@ function getInitialSettings() {
} }
}); });
} }
function removeUrlParameters() {
// Get the current URL without the query parameters
var urlWithoutParams = window.location.protocol + "//" + window.location.host + window.location.pathname;
// Replace the current URL with the new one, without reloading the page
window.history.replaceState({ path: urlWithoutParams }, '', urlWithoutParams);
}
+1 -1
View File
@@ -605,7 +605,7 @@ function findOnMaps() {
var latitude = localStorage.getItem('qthLongitude'); var latitude = localStorage.getItem('qthLongitude');
var longitude = localStorage.getItem('qthLatitude'); var longitude = localStorage.getItem('qthLatitude');
var url = `https://maps.fmdx.pl/#qth=${longitude},${latitude}&freq=${frequency}&findPi=${pi}`; var url = `https://maps.fmdx.org/#qth=${longitude},${latitude}&freq=${frequency}&findPi=${pi}`;
window.open(url, "_blank"); window.open(url, "_blank");
} }
+4 -5
View File
@@ -56,11 +56,10 @@ $(document).ready(() => {
const signalSelector = $('#signal-selector'); const signalSelector = $('#signal-selector');
const signalParameter = getQueryParameter('signalUnits'); const signalParameter = getQueryParameter('signalUnits');
if(signalParameter) { if(signalParameter && !localStorage.getItem('signalUnit')) {
signalSelector.find('input').val($(signalParameter).text()); signalSelector.find('input').val(signalSelector.find('.option[data-value="' + signalParameter + '"]').text());
} localStorage.setItem('signalUnit', signalParameter);
} else {
if (localStorage.getItem('signalUnit')) {
signalSelector.find('input').val(signalSelector.find('.option[data-value="' + savedUnit + '"]').text()); signalSelector.find('input').val(signalSelector.find('.option[data-value="' + savedUnit + '"]').text());
} }