From 355d6f4c19828a696376b98f8117eac44ee888e1 Mon Sep 17 00:00:00 2001 From: KubaPro010 Date: Wed, 1 Jul 2026 11:26:29 +0200 Subject: [PATCH] some fixes --- server/chat.js | 4 ++-- server/console.js | 23 ++++++----------------- server/helpers.js | 2 +- server/stream/index.js | 4 ++-- server/tunnel.js | 2 +- web/js/confighandler.js | 6 +++++- 6 files changed, 17 insertions(+), 24 deletions(-) diff --git a/server/chat.js b/server/chat.js index 642d72d..da27403 100644 --- a/server/chat.js +++ b/server/chat.js @@ -1,6 +1,6 @@ const WebSocket = require('ws'); const { serverConfig, configExists } = require('./server_config'); -const { logChat } = require('./console'); +const { logInfo } = require('./console'); const helpers = require('./helpers'); const storage = require('./storage.js'); @@ -85,7 +85,7 @@ function createChatServer() { storage.chatHistory.push(messageData); if (storage.chatHistory.length > 50) storage.chatHistory.shift(); - logChat(messageData); + logInfo(`${message.nickname} (${message.ip}) sent a chat message: ${message.message}`); chatWss.clients.forEach((client) => { if (client.readyState === WebSocket.OPEN) { diff --git a/server/console.js b/server/console.js index e4a98d8..0c9b6b5 100644 --- a/server/console.js +++ b/server/console.js @@ -1,7 +1,6 @@ const fs = require('fs').promises; const verboseMode = process.argv.includes('--debug'); -const verboseModeFfmpeg = process.argv.includes('--ffmpegdebug'); const LOG_FILE = process.argv.includes('--config') && process.argv[process.argv.indexOf('--config') + 1] ? `serverlog_${process.argv[process.argv.indexOf('--config') + 1]}.txt` @@ -15,13 +14,10 @@ let logBuffer = []; // Message prefixes with ANSI codes const MESSAGE_PREFIX = { - CHAT: "\x1b[36m[CHAT]\x1b[0m", DEBUG: "\x1b[36m[DEBUG]\x1b[0m", ERROR: "\x1b[31m[ERROR]\x1b[0m", - FFMPEG: "\x1b[36m[FFMPEG]\x1b[0m", INFO: "\x1b[32m[INFO]\x1b[0m", WARN: "\x1b[33m[WARN]\x1b[0m", - SECURITY: "\x1b[36m[SECURITY]\x1b[0m", }; const getCurrentTime = () => { @@ -36,28 +32,21 @@ const removeANSIEscapeCodes = (str) => str.replace(ANSI_ESCAPE_CODE_PATTERN, '') const logMessage = (type, messages) => { const logMessage = `${getCurrentTime()} ${MESSAGE_PREFIX[type]} ${messages.join(' ')}`; - if ((type === 'DEBUG' && verboseMode) || (type === 'FFMPEG' && verboseModeFfmpeg) || type !== 'DEBUG' && type !== 'FFMPEG') { + if ((type === 'DEBUG' && verboseMode) || type !== 'DEBUG') { logs.push(logMessage); if (logs.length > maxConsoleLogLines) logs.shift(); console.log(logMessage); } - if(type !== 'FFMPEG') appendLogToBuffer(logMessage); + logBuffer.push(removeANSIEscapeCodes(logMessage) + '\n'); }; -const logSecurity = (...messages) => logMessage('SECURITY', messages); -const logDebug = (...messages) => logMessage('DEBUG', messages); -const logChat = (message) => logMessage('CHAT', [`${message.nickname} (${message.ip}) sent a chat message: ${message.message}`]); const logError = (...messages) => logMessage('ERROR', messages); -const logFfmpeg = (...messages) => logMessage('FFMPEG', messages, verboseModeFfmpeg); -const logInfo = (...messages) => logMessage('INFO', messages); const logWarn = (...messages) => logMessage('WARN', messages); +const logInfo = (...messages) => logMessage('INFO', messages); +const logDebug = (...messages) => logMessage('DEBUG', messages); -function appendLogToBuffer(logMessage) { - const cleanLogMessage = removeANSIEscapeCodes(logMessage); - logBuffer.push(cleanLogMessage + '\n'); -} -appendLogToBuffer("Server started."); +logBuffer.push("Server started."); async function flushLogBuffer() { if (logBuffer.length === 0) return; @@ -90,4 +79,4 @@ process.on('exit', flushLogBuffer); process.on('SIGINT', gracefulExit); process.on('SIGTERM', gracefulExit); -module.exports = { logError, logDebug, logFfmpeg, logInfo, logWarn, logs, logChat, logSecurity }; \ No newline at end of file +module.exports = { logError, logDebug, logInfo, logWarn, logs }; \ No newline at end of file diff --git a/server/helpers.js b/server/helpers.js index 7030767..5996978 100644 --- a/server/helpers.js +++ b/server/helpers.js @@ -433,7 +433,7 @@ function getIpAddress(request) { const xff = request.headers['x-forwarded-for']; if (xff && !isLocalhost(remoteIp) && !isTrustedProxy(remoteIp)) { - consoleCmd.logSecurity(`Untrusted proxy tried to set X-Forwarded-For: ${xff} (remote: ${remoteIpRaw})`); + consoleCmd.logWarn(`Untrusted proxy tried to set X-Forwarded-For: ${xff} (remote: ${remoteIpRaw})`); return remoteIp; } diff --git a/server/stream/index.js b/server/stream/index.js index b489f0b..d04bc22 100644 --- a/server/stream/index.js +++ b/server/stream/index.js @@ -6,7 +6,7 @@ const { serverConfig, configExists } = require('../server_config'); if (!configExists() || !serverConfig.audio.audioDevice) return; const { spawn } = require('child_process'); -const { logDebug, logError, logInfo, logWarn, logFfmpeg } = require('../console'); +const { logDebug, logError, logInfo, logWarn } = require('../console'); const checkFFmpeg = require('./checkFFmpeg'); const consoleLogTitle = '[Audio Stream]'; @@ -84,7 +84,7 @@ checkFFmpeg().then((ffmpegPath) => { ffmpeg.stderr.on('data', (data) => { const msg = data.toString(); - logFfmpeg(`[FFmpeg stderr]: ${msg}`); + logError(`[FFmpeg stderr]: ${msg}`); // Detect frozen timestamps const match = msg.match(/time=(\d\d):(\d\d):(\d\d\.\d+)/); diff --git a/server/tunnel.js b/server/tunnel.js index 465eee1..4310e9e 100644 --- a/server/tunnel.js +++ b/server/tunnel.js @@ -1,4 +1,4 @@ -const { logDebug, logError, logInfo, logWarn, logFfmpeg } = require('./console'); +const { logDebug, logError, logInfo, logWarn } = require('./console'); const { serverConfig } = require('./server_config'); const { Readable } = require('stream'); const { finished } = require('stream/promises'); diff --git a/web/js/confighandler.js b/web/js/confighandler.js index 0e13ed4..526fdb5 100644 --- a/web/js/confighandler.js +++ b/web/js/confighandler.js @@ -91,9 +91,13 @@ function populateFields(data, prefix = "") { }); } +function safeId(str) { + return str.replace(/[^a-zA-Z0-9_-]/g, "_"); +} + function updateConfigData(data, prefix = "") { $.each(data, (key, value) => { - const id = `${prefix}${prefix ? "-" : ""}${key}`; + let id = `${prefix}${prefix ? "-" : ""}${safeId(key)}`; const $element = $(`#${id}`); if (key === "presets") {