From 410c39a6b8620c2b396edefdb43707594b992fc5 Mon Sep 17 00:00:00 2001 From: KubaPro010 Date: Mon, 23 Feb 2026 23:15:15 +0100 Subject: [PATCH] Not sure which has better code, firmware, or this? This is okay, but toy lang. Firmware was horrible. --- README.md | 2 - package-lock.json | 7 - package.json | 1 - server/chat.js | 5 +- server/console.js | 4 +- server/datahandler.js | 262 +-------- server/endpoints.js | 1 + server/fmdx_list.js | 57 +- server/helpers.js | 31 +- server/index.js | 254 ++++----- server/libraries/aarch64/librdsparser.so | Bin 82064 -> 0 bytes server/libraries/arm/librdsparser.so | Bin 36812 -> 0 bytes server/libraries/macos/librdsparser.dylib | Bin 88912 -> 0 bytes server/libraries/mingw32/librdsparser.dll | Bin 116908 -> 0 bytes server/libraries/mingw64/librdsparser.dll | Bin 125518 -> 0 bytes server/libraries/x86/librdsparser.so | Bin 47072 -> 0 bytes server/libraries/x86_64/librdsparser.so | Bin 63864 -> 0 bytes server/rds.js | 184 +++++++ server/rds_country.js | 632 ++++++++++++++++++++++ server/server_config.js | 2 +- server/stream/checkFFmpeg.js | 7 +- server/stream/parser.js | 11 +- server/tunnel.js | 19 +- web/js/setup.js | 7 +- web/setup.ejs | 4 +- 25 files changed, 978 insertions(+), 512 deletions(-) delete mode 100755 server/libraries/aarch64/librdsparser.so delete mode 100755 server/libraries/arm/librdsparser.so delete mode 100755 server/libraries/macos/librdsparser.dylib delete mode 100644 server/libraries/mingw32/librdsparser.dll delete mode 100644 server/libraries/mingw64/librdsparser.dll delete mode 100755 server/libraries/x86/librdsparser.so delete mode 100755 server/libraries/x86_64/librdsparser.so create mode 100644 server/rds.js create mode 100644 server/rds_country.js diff --git a/README.md b/README.md index da9367c..50f5108 100644 --- a/README.md +++ b/README.md @@ -31,9 +31,7 @@ FM-DX Webserver is a cross-platform web server designed for FM DXers who want to This project utilizes these libraries: -- [3LAS](https://github.com/jojobond/3LAS) library by JoJoBond for Low Latency Audio Streaming. - [flat-flags](https://github.com/luishdez/flat-flags) library by luishdez for RDS country flags. -- [librdsparser](https://github.com/kkonradpl/librdsparser) library by Konrad Kosmatka for RDS parsing. All of these libraries are already bundled with the webserver. diff --git a/package-lock.json b/package-lock.json index 20fcdd0..01a5050 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,7 +16,6 @@ "express-session": "1.18.2", "ffmpeg-static": "5.2.0", "http": "0.0.1-security", - "koffi": "2.7.2", "net": "1.0.2", "serialport": "12.0.0", "ws": "8.18.1" @@ -1181,12 +1180,6 @@ "node": ">=10" } }, - "node_modules/koffi": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/koffi/-/koffi-2.7.2.tgz", - "integrity": "sha512-AWcsEKETQuELxK0Wq/aXDkDiNFFY41TxZQSrKm2Nd6HO/KTHeohPOOIlh2OfQnBXJbRjx5etpWt8cbqMUZo2sg==", - "hasInstallScript": true - }, "node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", diff --git a/package.json b/package.json index 989e5ef..bf120fc 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,6 @@ "express-session": "1.18.2", "ffmpeg-static": "5.2.0", "http": "0.0.1-security", - "koffi": "2.7.2", "net": "1.0.2", "serialport": "12.0.0", "ws": "8.18.1" diff --git a/server/chat.js b/server/chat.js index 9597abb..b160e7f 100644 --- a/server/chat.js +++ b/server/chat.js @@ -23,10 +23,7 @@ function createChatServer(storage) { storage.chatHistory.forEach((message) => { const historyMessage = { ...message, history: true }; - if (!request.session?.isAdminAuthenticated) { - delete historyMessage.ip; - } - + if (!request.session?.isAdminAuthenticated) delete historyMessage.ip; ws.send(JSON.stringify(historyMessage)); }); diff --git a/server/console.js b/server/console.js index cec1315..4c4397f 100644 --- a/server/console.js +++ b/server/console.js @@ -39,9 +39,7 @@ const logMessage = (type, messages, verbose = false) => { console.log(logMessage); } - if(type !== 'FFMPEG') { - appendLogToBuffer(logMessage); - } + if(type !== 'FFMPEG') appendLogToBuffer(logMessage); }; const logDebug = (...messages) => logMessage('DEBUG', messages, verboseMode); diff --git a/server/datahandler.js b/server/datahandler.js index 8a2f7bb..a4d85b7 100644 --- a/server/datahandler.js +++ b/server/datahandler.js @@ -1,213 +1,8 @@ /* Libraries / Imports */ -const fs = require('fs'); -const https = require('https'); -const koffi = require('koffi'); -const path = require('path'); -const os = require('os'); -const platform = os.platform(); -const cpuArchitecture = os.arch(); -const { configName, serverConfig, configUpdate, configSave } = require('./server_config'); -let unicode_type; -let shared_Library; +const { RDSDecoder } = require("./rds.js"); +const { serverConfig } = require('./server_config'); -if (platform === 'win32') { - unicode_type = 'int16_t'; - arch_type = (cpuArchitecture === 'x64' ? 'mingw64' : 'mingw32'); - shared_Library=path.join(__dirname, "libraries", arch_type, "librdsparser.dll"); -} else if (platform === 'linux') { - unicode_type = 'int32_t'; - arch_type = (cpuArchitecture === 'x64' ? 'x86_64' : - (cpuArchitecture === 'ia32' ? 'x86' : - (cpuArchitecture === 'arm64' ? 'aarch64' : cpuArchitecture))); - shared_Library=path.join(__dirname, "libraries", arch_type, "librdsparser.so"); -} else if (platform === 'darwin') { - unicode_type = 'int32_t'; - shared_Library=path.join(__dirname, "libraries", "macos", "librdsparser.dylib"); -} - -const lib = koffi.load(shared_Library); const { fetchTx } = require('./tx_search.js'); - -koffi.proto('void callback_pi(void *rds, void *user_data)'); -koffi.proto('void callback_pty(void *rds, void *user_data)'); -koffi.proto('void callback_tp(void *rds, void *user_data)'); -koffi.proto('void callback_ta(void *rds, void *user_data)'); -koffi.proto('void callback_ms(void *rds, void *user_data)'); -koffi.proto('void callback_ecc(void *rds, void *user_data)'); -koffi.proto('void callback_country(void *rds, void *user_data)'); -koffi.proto('void callback_af(void *rds, uint32_t af, void *user_data)'); -koffi.proto('void callback_ps(void *rds, void *user_data)'); -koffi.proto('void callback_rt(void *rds, int flag, void *user_data)'); -koffi.proto('void callback_ptyn(void *rds, void *user_data)'); -koffi.proto('void callback_ct(void *rds, void *ct, void *user_data)'); - -const rdsparser = { - new: lib.func('void* rdsparser_new()'), - free: lib.func('void rdsparser_free(void *rds)'), - clear: lib.func('void rdsparser_clear(void *rds)'), - parse_string: lib.func('bool rdsparser_parse_string(void *rds, const char *input)'), - set_text_correction: lib.func('void rdsparser_set_text_correction(void *rds, uint8_t text, uint8_t type, uint8_t error)'), - set_text_progressive: lib.func('void rdsparser_set_text_progressive(void *rds, uint8_t string, uint8_t state)'), - get_pi: lib.func('int32_t rdsparser_get_pi(void *rds)'), - get_pty: lib.func('int8_t rdsparser_get_pty(void *rds)'), - get_tp: lib.func('int8_t rdsparser_get_tp(void *rds)'), - get_ta: lib.func('int8_t rdsparser_get_ta(void *rds)'), - get_ms: lib.func('int8_t rdsparser_get_ms(void *rds)'), - get_ecc: lib.func('int16_t rdsparser_get_ecc(void *rds)'), - get_country: lib.func('int rdsparser_get_country(void *rds)'), - get_ps: lib.func('void* rdsparser_get_ps(void *rds)'), - get_rt: lib.func('void* rdsparser_get_rt(void *rds, int flag)'), - get_ptyn: lib.func('void* rdsparser_get_ptyn(void *rds)'), - register_pi: lib.func('void rdsparser_register_pi(void *rds, void *cb)'), - register_pty: lib.func('void rdsparser_register_pty(void *rds, void *cb)'), - register_tp: lib.func('void rdsparser_register_tp(void *rds, void *cb)'), - register_ta: lib.func('void rdsparser_register_ta(void *rds, void *cb)'), - register_ms: lib.func('void rdsparser_register_ms(void *rds, void *cb)'), - register_ecc: lib.func('void rdsparser_register_ecc(void *rds, void *cb)'), - register_country: lib.func('void rdsparser_register_country(void *rds, void *cb)'), - register_af: lib.func('void rdsparser_register_af(void *rds, void *cb)'), - register_ps: lib.func('void rdsparser_register_ps(void *rds, void *cb)'), - register_rt: lib.func('void rdsparser_register_rt(void *rds, void *cb)'), - register_ptyn: lib.func('void rdsparser_register_ptyn(void *rds, void *cb)'), - register_ct: lib.func('void rdsparser_register_ct(void *rds, void *cb)'), - string_get_content: lib.func(unicode_type + '* rdsparser_string_get_content(void *string)'), - string_get_errors: lib.func('uint8_t* rdsparser_string_get_errors(void *string)'), - string_get_length: lib.func('uint8_t rdsparser_string_get_length(void *string)'), - ct_get_year: lib.func('uint16_t rdsparser_ct_get_year(void *ct)'), - ct_get_month: lib.func('uint8_t rdsparser_ct_get_month(void *ct)'), - ct_get_day: lib.func('uint8_t rdsparser_ct_get_day(void *ct)'), - ct_get_hour: lib.func('uint8_t rdsparser_ct_get_hour(void *ct)'), - ct_get_minute: lib.func('uint8_t rdsparser_ct_get_minute(void *ct)'), - ct_get_offset: lib.func('int8_t rdsparser_ct_get_offset(void *ct)'), - pty_lookup_short: lib.func('const char* rdsparser_pty_lookup_short(int8_t pty, bool rbds)'), - pty_lookup_long: lib.func('const char* rdsparser_pty_lookup_long(int8_t pty, bool rbds)'), - country_lookup_name: lib.func('const char* rdsparser_country_lookup_name(int country)'), - country_lookup_iso: lib.func('const char* rdsparser_country_lookup_iso(int country)') -} - -const callbacks = { - pi: koffi.register(rds => ( - value = rdsparser.get_pi(rds) - //console.log('PI: ' + value.toString(16).toUpperCase()) - ), 'callback_pi*'), - - pty: koffi.register(rds => ( - value = rdsparser.get_pty(rds), - dataToSend.pty = value - ), 'callback_pty*'), - - tp: koffi.register(rds => ( - value = rdsparser.get_tp(rds), - dataToSend.tp = value - ), 'callback_tp*'), - - ta: koffi.register(rds => ( - value = rdsparser.get_ta(rds), - dataToSend.ta = value - ), 'callback_ta*'), - - ms: koffi.register(rds => ( - value = rdsparser.get_ms(rds), - dataToSend.ms = value - ), 'callback_ms*'), - - af: koffi.register((rds, value) => ( - dataToSend.af.push(value) - ), 'callback_af*'), - - ecc: koffi.register(rds => ( - value = rdsparser.get_ecc(rds), - dataToSend.ecc = value - ), 'callback_ecc*'), - - country: koffi.register(rds => ( - value = rdsparser.get_country(rds), - display = rdsparser.country_lookup_name(value), - iso = rdsparser.country_lookup_iso(value), - dataToSend.country_name = display, - dataToSend.country_iso = iso - ), 'callback_country*'), - - ps: koffi.register(rds => ( - ps = rdsparser.get_ps(rds), - dataToSend.ps = decode_unicode(ps), - dataToSend.ps_errors = decode_errors(ps) - ), 'callback_ps*'), - - rt: koffi.register((rds, flag) => { - const rt = rdsparser.get_rt(rds, flag); - - if (flag === 0) { - dataToSend.rt0 = decode_unicode(rt); - dataToSend.rt0_errors = decode_errors(rt); - } - - if (flag === 1) { - dataToSend.rt1 = decode_unicode(rt); - dataToSend.rt1_errors = decode_errors(rt); - } - dataToSend.rt_flag = flag; - }, 'callback_rt*'), - - ptyn: koffi.register((rds, flag) => ( - value = decode_unicode(rdsparser.get_ptyn(rds)) - /*console.log('PTYN: ' + value)*/ - ), 'callback_ptyn*'), - - ct: koffi.register((rds, ct) => ( - year = rdsparser.ct_get_year(ct), - month = String(rdsparser.ct_get_month(ct)).padStart(2, '0'), - day = String(rdsparser.ct_get_day(ct)).padStart(2, '0'), - hour = String(rdsparser.ct_get_hour(ct)).padStart(2, '0'), - minute = String(rdsparser.ct_get_minute(ct)).padStart(2, '0'), - offset = rdsparser.ct_get_offset(ct), - tz_sign = (offset >= 0 ? '+' : '-'), - tz_hour = String(Math.abs(Math.floor(offset / 60))).padStart(2, '0'), - tz_minute = String(Math.abs(offset % 60)).padStart(2, '0') - //console.log('CT: ' + year + '-' + month + '-' + day + ' ' + hour + ':' + minute + ' (' + tz_sign + tz_hour + ':' + tz_minute + ')') - ), 'callback_ct*') -}; - -let rds = rdsparser.new() -rdsparser.set_text_correction(rds, 0, 0, 2); -rdsparser.set_text_correction(rds, 0, 1, 2); -rdsparser.set_text_correction(rds, 1, 0, 2); -rdsparser.set_text_correction(rds, 1, 1, 2); -rdsparser.set_text_progressive(rds, 0, 1) -rdsparser.set_text_progressive(rds, 1, 1) -rdsparser.register_pi(rds, callbacks.pi); -rdsparser.register_pty(rds, callbacks.pty); -rdsparser.register_tp(rds, callbacks.tp); -rdsparser.register_ta(rds, callbacks.ta); -rdsparser.register_ms(rds, callbacks.ms); -rdsparser.register_ecc(rds, callbacks.ecc); -rdsparser.register_country(rds, callbacks.country); -rdsparser.register_af(rds, callbacks.af); -rdsparser.register_ps(rds, callbacks.ps); -rdsparser.register_rt(rds, callbacks.rt); -rdsparser.register_ptyn(rds, callbacks.ptyn); -rdsparser.register_ct(rds, callbacks.ct); - -const decode_unicode = function(string) { - let length = rdsparser.string_get_length(string); - if (length) { - let content = rdsparser.string_get_content(string); - let array = koffi.decode(content, unicode_type + ' [' + length + ']'); - return String.fromCodePoint.apply(String, array); - } - return ''; -}; - -const decode_errors = function(string) { - let length = rdsparser.string_get_length(string); - if (length) { - let errors = rdsparser.string_get_errors(string); - let array = koffi.decode(errors, 'uint8_t [' + length + ']'); - return Uint8Array.from(array).toString(); - } - return ''; -}; - const updateInterval = 75; // Initialize the data object @@ -251,6 +46,8 @@ var dataToSend = { users: 0, }; +const rdsdec = new RDSDecoder(dataToSend); + const filterMappings = { 'G11': { eq: 1, ims: 1 }, 'G01': { eq: 0, ims: 1 }, @@ -264,8 +61,6 @@ var lastUpdateTime = Date.now(); const initialData = { ...dataToSend }; const resetToDefault = dataToSend => Object.assign(dataToSend, initialData); -// Serialport reconnect variables -const ServerStartTime = process.hrtime(); var serialportUpdateTime = process.hrtime(); let checkSerialport = false; let rdsTimeoutTimer = null; @@ -283,7 +78,7 @@ function rdsReceived() { function rdsReset() { resetToDefault(dataToSend); dataToSend.af.length = 0; - rdsparser.clear(rds); + rdsdec.clear(); if (rdsTimeoutTimer) { clearTimeout(rdsTimeoutTimer); rdsTimeoutTimer = null; @@ -307,17 +102,13 @@ function handleData(wss, receivedData, rdsWss) { rdsReceived(); modifiedData = receivedLine.slice(1); legacyRdsPiBuffer = modifiedData; - if (dataToSend.pi.length >= modifiedData.length || dataToSend.pi == '?') { - dataToSend.pi = modifiedData; - } + if (dataToSend.pi.length >= modifiedData.length || dataToSend.pi == '?') dataToSend.pi = modifiedData; break; case receivedLine.startsWith('T'): // Frequency modifiedData = receivedLine.substring(1).split(",")[0]; rdsReset(); - if((modifiedData / 1000).toFixed(3) == dataToSend.freq) { - return; // Prevent tune spamming using scrollwheel - } + if((modifiedData / 1000).toFixed(3) == dataToSend.freq) return; // Prevent tune spamming using scrollwheel parsedValue = parseFloat(modifiedData); @@ -360,8 +151,8 @@ function handleData(wss, receivedData, rdsWss) { processSignal(receivedLine, true, true); break; case receivedLine.startsWith('SM'): - processSignal(receivedLine, false, true); - break; + processSignal(receivedLine, false, true); + break; case receivedLine.startsWith('R'): // RDS HEX rdsReceived(); modifiedData = receivedLine.slice(1); @@ -372,8 +163,7 @@ function handleData(wss, receivedData, rdsWss) { var errorsNew = 0; var pi; - if (legacyRdsPiBuffer !== null && - legacyRdsPiBuffer.length >= 4) { + if(legacyRdsPiBuffer !== null && legacyRdsPiBuffer.length >= 4) { pi = legacyRdsPiBuffer.slice(0, 4); // PI message does not carry explicit information about // error correction, but this is a good substitute. @@ -404,7 +194,7 @@ function handleData(wss, receivedData, rdsWss) { client.send(finalBuffer); }); - rdsparser.parse_string(rds, modifiedData); + rdsdec.decodeGroup(parseInt(modifiedData.slice(0, 4), 16), parseInt(modifiedData.slice(4, 8), 16), parseInt(modifiedData.slice(8, 12), 16), parseInt(modifiedData.slice(12, 16), 16)); legacyRdsPiBuffer = null; break; } @@ -434,15 +224,15 @@ function handleData(wss, receivedData, rdsWss) { console.log("Error fetching Tx info:", error); }); - // Send the updated data to the client - const dataToSendJSON = JSON.stringify(dataToSend); - if (currentTime - lastUpdateTime >= updateInterval) { - wss.clients.forEach((client) => { - client.send(dataToSendJSON); - }); - lastUpdateTime = Date.now(); - serialportUpdateTime = process.hrtime(); - } + // Send the updated data to the client + const dataToSendJSON = JSON.stringify(dataToSend); + if (currentTime - lastUpdateTime >= updateInterval) { + wss.clients.forEach((client) => { + client.send(dataToSendJSON); + }); + lastUpdateTime = Date.now(); + serialportUpdateTime = process.hrtime(); + } } // Serialport retry code when port is open but communication is lost (additional code in index.js) @@ -469,10 +259,7 @@ async function checkSerialPortStatus() { while (!checkSerialport) { const ServerElapsedSeconds = process.hrtime(ServerStartTime)[0]; - if (ServerElapsedSeconds > 10) { - checkSerialport = true; - } - + if (ServerElapsedSeconds > 10) checkSerialport = true; await new Promise(resolve => setTimeout(resolve, 100)); } } @@ -507,11 +294,8 @@ function processSignal(receivedData, st, stForced) { // Convert highestSignal to a number for comparison var highestSignal = parseFloat(dataToSend.sigTop); - if (signal > highestSignal) { - dataToSend.sigTop = signal.toString(); // Convert back to string for consistency - } -} - + if (signal > highestSignal) dataToSend.sigTop = signal.toString(); // Convert back to string for consistency + } } module.exports = { diff --git a/server/endpoints.js b/server/endpoints.js index ffdf365..d6ecfb6 100644 --- a/server/endpoints.js +++ b/server/endpoints.js @@ -463,6 +463,7 @@ router.get('/tunnelservers', async (req, res) => { { value: "eu", host: "eu.fmtuner.org", label: "Europe" }, { value: "us", host: "us.fmtuner.org", label: "Americas" }, { value: "sg", host: "sg.fmtuner.org", label: "Asia & Oceania" }, + { value: "pldx", host: "pldx.fmtuner.org", label: "Poland (k201)" }, ]; const results = await Promise.all( diff --git a/server/fmdx_list.js b/server/fmdx_list.js index ffc21d0..70da4cf 100644 --- a/server/fmdx_list.js +++ b/server/fmdx_list.js @@ -1,8 +1,7 @@ /* Libraries / Imports */ -const fs = require('fs'); const fetch = require('node-fetch'); -const { logDebug, logError, logInfo, logWarn } = require('./console'); -const { serverConfig, configUpdate, configSave } = require('./server_config'); +const { logDebug, logInfo, logWarn } = require('./console'); +const { serverConfig, configSave } = require('./server_config'); var pjson = require('../package.json'); var os = require('os'); @@ -23,23 +22,15 @@ function send(request) { fetch(url, options) .then(response => response.json()) .then(data => { - if (data.success && data.token) - { + if (data.success && data.token) { if (!serverConfig.identification.token) { logInfo("Registered to FM-DX Server Map successfully."); serverConfig.identification.token = data.token; configSave(); } - else - { - logDebug("FM-DX Server Map update successful."); - } - } - else - { - logWarn("Failed to update FM-DX Server Map: " + (data.error ? data.error : 'unknown error')); - } + else logDebug("FM-DX Server Map update successful."); + } else logWarn("Failed to update FM-DX Server Map: " + (data.error ? data.error : 'unknown error')); }) .catch(error => { logWarn("Failed to update FM-DX Server Map: " + error); @@ -47,10 +38,7 @@ function send(request) { } function sendKeepalive() { - if (!serverConfig.identification.token) - { - return; - } + if (!serverConfig.identification.token) return; const request = { token: serverConfig.identification.token, @@ -64,9 +52,7 @@ function sendUpdate() { let currentOs = os.type() + ' ' + os.release(); let bwLimit = ''; - if (serverConfig.webserver.tuningLimit === true) { - bwLimit = serverConfig.webserver.tuningLowerLimit + ' - ' + serverConfig.webserver.tuningUpperLimit + ' MHz'; - } + if (serverConfig.webserver.tuningLimit === true) bwLimit = serverConfig.webserver.tuningLowerLimit + ' - ' + serverConfig.webserver.tuningUpperLimit + ' MHz'; const request = { status: ((serverConfig.lockToAdmin == 'true' || serverConfig.publicTuner == 'false') ? 2 : 1), @@ -82,37 +68,20 @@ function sendUpdate() { version: pjson.version }; - if (serverConfig.identification.token) - { - request.token = serverConfig.identification.token; - } + if (serverConfig.identification.token) request.token = serverConfig.identification.token; - if (serverConfig.identification.proxyIp.length) - { - request.url = serverConfig.identification.proxyIp; - } - else - { - request.port = serverConfig.webserver.webserverPort; - } + if (serverConfig.identification.proxyIp.length) request.url = serverConfig.identification.proxyIp; + else request.port = serverConfig.webserver.webserverPort; send(request); } function update() { - if (timeoutID !== null) { - clearTimeout(timeoutID); - } - - if (!serverConfig.identification.broadcastTuner) - { - return; - } + if (timeoutID !== null) clearTimeout(timeoutID); + if (!serverConfig.identification.broadcastTuner) return; sendUpdate(); timeoutID = setInterval(sendKeepalive, 5 * 60 * 1000); } -module.exports = { - update -}; +module.exports.update = update; diff --git a/server/helpers.js b/server/helpers.js index ce3758c..240c81d 100644 --- a/server/helpers.js +++ b/server/helpers.js @@ -137,9 +137,7 @@ function processConnection(clientIp, locationInfo, currentUsers, ws, callback) { const normalizedClientIp = clientIp?.replace(/^::ffff:/, ''); fetchBannedAS((error, bannedAS) => { - if (error) { - console.error("Error fetching banned AS list:", error); - } + if (error) console.error("Error fetching banned AS list:", error); if (bannedAS.some((as) => locationInfo.as?.includes(as))) { const now = Date.now(); @@ -165,9 +163,7 @@ function processConnection(clientIp, locationInfo, currentUsers, ws, callback) { instance: ws, }); - consoleCmd.logInfo( - `Web client \x1b[32mconnected\x1b[0m (${normalizedClientIp}) \x1b[90m[${currentUsers}]\x1b[0m Location: ${userLocation}` - ); + consoleCmd.logInfo(`Web client \x1b[32mconnected\x1b[0m (${normalizedClientIp}) \x1b[90m[${currentUsers}]\x1b[0m Location: ${userLocation}`); callback("User allowed"); }); @@ -200,13 +196,9 @@ function resolveDataBuffer(data, wss, rdsWss) { incompleteDataBuffer = receivedData.slice(position + 1); receivedData = receivedData.slice(0, position + 1); } - } else { - incompleteDataBuffer = ''; - } + } else incompleteDataBuffer = ''; - if (receivedData.length) { - dataHandler.handleData(wss, receivedData, rdsWss); - }; + if (receivedData.length) dataHandler.handleData(wss, receivedData, rdsWss); } function kickClient(ipAddress) { @@ -221,9 +213,7 @@ function kickClient(ipAddress) { targetClient.instance.close(); consoleCmd.logInfo(`Web client kicked (${ipAddress})`); }, 500); - } else { - consoleCmd.logInfo(`Kicking client ${ipAddress} failed. No suitable client found.`); - } + } else consoleCmd.logInfo(`Kicking client ${ipAddress} failed. No suitable client found.`); } function checkIPv6Support(callback) { @@ -232,11 +222,8 @@ function checkIPv6Support(callback) { server.listen(0, '::1', () => { server.close(() => callback(true)); }).on('error', (error) => { - if (error.code === 'EADDRNOTAVAIL') { - callback(false); - } else { - callback(false); - } + if (error.code === 'EADDRNOTAVAIL') callback(false); + else callback(false); }); } @@ -272,9 +259,7 @@ function antispamProtection(message, clientIp, ws, userCommands, lastWarn, userC if (endpointName === 'text') consoleCmd.logDebug(`Command received from \x1b[90m${clientIp}\x1b[0m: ${command}`); // Initialize user command history if not present - if (!userCommandHistory[clientIp]) { - userCommandHistory[clientIp] = []; - } + if (!userCommandHistory[clientIp]) userCommandHistory[clientIp] = []; // Record the current timestamp for the user userCommandHistory[clientIp].push(now); diff --git a/server/index.js b/server/index.js index 9a998d4..11b1ed8 100644 --- a/server/index.js +++ b/server/index.js @@ -37,7 +37,7 @@ function findServerFiles(plugins) { if (plugin.endsWith('.js')) { plugin = plugin.slice(0, -3); } - + const pluginPath = path.join(__dirname, '..', 'plugins', `${plugin}_server.js`); if (fs.existsSync(pluginPath) && fs.statSync(pluginPath).isFile()) { results.push(pluginPath); @@ -79,12 +79,13 @@ const terminalWidth = readline.createInterface({ }).output.columns; +// Couldn't get figlet.js or something like that? console.log(`\x1b[32m - _____ __ __ ______ __ __ __ _ -| ___| \\/ | | _ \\ \\/ / \\ \\ / /__| |__ ___ ___ _ ____ _____ _ __ + _____ __ __ ______ __ __ __ _ +| ___| \\/ | | _ \\ \\/ / \\ \\ / /__| |__ ___ ___ _ ____ _____ _ __ | |_ | |\\/| |_____| | | \\ / \\ \\ /\\ / / _ \\ '_ \\/ __|/ _ \\ '__\\ \\ / / _ \\ '__| -| _| | | | |_____| |_| / \\ \\ V V / __/ |_) \\__ \\ __/ | \\ V / __/ | -|_| |_| |_| |____/_/\\_\\ \\_/\\_/ \\___|_.__/|___/\\___|_| \\_/ \\___|_| +| _| | | | |_____| |_| / \\ \\ V V / __/ |_) \\__ \\ __/ | \\ V / __/ | +|_| |_| |_| |____/_/\\_\\ \\_/\\_/ \\___|_.__/|___/\\___|_| \\_/ \\___|_| `); console.log('\x1b[32m\x1b[2mby Noobish @ \x1b[4mFMDX.org\x1b[0m'); console.log("v" + pjson.version) @@ -124,21 +125,17 @@ setInterval(() => { logWarn('Communication lost from ' + serverConfig.xdrd.comPort + ', force closing serialport.'); setTimeout(() => { serialport.close((err) => { - if (err) { - logError('Error closing serialport: ', err.message); - } + if (err) logError('Error closing serialport: ', err.message); }); }, 1000); - } else { - logWarn('Communication lost from ' + serverConfig.xdrd.comPort + '.'); - } + } else logWarn('Communication lost from ' + serverConfig.xdrd.comPort + '.'); } }, 2000); // Serial Connection function connectToSerial() { -if (serverConfig.xdrd.wirelessConnection === false) { - + if (serverConfig.xdrd.wirelessConnection === true) return; + // Configure the SerialPort with DTR and RTS options serialport = new SerialPort({ path: serverConfig.xdrd.comPort, @@ -157,13 +154,13 @@ if (serverConfig.xdrd.wirelessConnection === false) { }, 5000); return; } - + logInfo('Using COM device: ' + serverConfig.xdrd.comPort); dataHandler.state.isSerialportAlive = true; setTimeout(() => { serialport.write('x\n'); }, 3000); - + setTimeout(() => { serialport.write('Q0\n'); serialport.write('M0\n'); @@ -175,9 +172,7 @@ if (serverConfig.xdrd.wirelessConnection === false) { dataHandler.dataToSend.freq = Number(serverConfig.defaultFreq).toFixed(3); } else if (dataHandler.state.lastFrequencyAlive && dataHandler.state.isSerialportRetrying) { // Serialport retry code when port is open but communication is lost serialport.write('T' + (dataHandler.state.lastFrequencyAlive * 1000) + '\n'); - } else { - serialport.write('T87500\n'); - } + } else serialport.write('T87500\n'); dataHandler.state.isSerialportRetrying = false; serialport.write('A0\n'); @@ -185,24 +180,17 @@ if (serverConfig.xdrd.wirelessConnection === false) { serialport.write('W0\n'); serverConfig.webserver.rdsMode ? serialport.write('D1\n') : serialport.write('D0\n'); // cEQ and iMS combinations - if (serverConfig.ceqStartup === "0" && serverConfig.imsStartup === "0") { - serialport.write("G00\n"); // Both Disabled - } else if (serverConfig.ceqStartup === "1" && serverConfig.imsStartup === "0") { - serialport.write(`G10\n`); - } else if (serverConfig.ceqStartup === "0" && serverConfig.imsStartup === "1") { - serialport.write(`G01\n`); - } else if (serverConfig.ceqStartup === "1" && serverConfig.imsStartup === "1") { - serialport.write("G11\n"); // Both Enabled - } + if (serverConfig.ceqStartup === "0" && serverConfig.imsStartup === "0") serialport.write("G00\n"); // Both Disabled + else if (serverConfig.ceqStartup === "1" && serverConfig.imsStartup === "0") serialport.write(`G10\n`); + else if (serverConfig.ceqStartup === "0" && serverConfig.imsStartup === "1") serialport.write(`G01\n`); + else if (serverConfig.ceqStartup === "1" && serverConfig.imsStartup === "1") serialport.write("G11\n"); // Both Enabled // Handle stereo mode - if (serverConfig.stereoStartup === "1") { - serialport.write("B1\n"); // Mono - } - serverConfig.audio.startupVolume - ? serialport.write('Y' + (serverConfig.audio.startupVolume * 100).toFixed(0) + '\n') + if (serverConfig.stereoStartup === "1") serialport.write("B1\n"); // Mono + serverConfig.audio.startupVolume + ? serialport.write('Y' + (serverConfig.audio.startupVolume * 100).toFixed(0) + '\n') : serialport.write('Y100\n'); }, 6000); - + serialport.on('data', (data) => { helpers.resolveDataBuffer(data, wss, rdsWss); }); @@ -222,7 +210,6 @@ if (serverConfig.xdrd.wirelessConnection === false) { }); return serialport; } -} // xdrd connection let authFlags = {}; @@ -233,7 +220,7 @@ function connectToXdrd() { if (xdrd.wirelessConnection && configExists()) { client.connect(xdrd.xdrdPort, xdrd.xdrdIp, () => { logInfo('Connection to xdrd established successfully.'); - + authFlags = { authMsg: false, firstClient: false, @@ -247,7 +234,7 @@ function connectToXdrd() { client.on('data', (data) => { const { xdrd } = serverConfig; - + helpers.resolveDataBuffer(data, wss, rdsWss); if (authFlags.authMsg == true && authFlags.messageCount > 1) { return; @@ -266,9 +253,8 @@ client.on('data', (data) => { if (line.startsWith('a')) { authFlags.authMsg = true; logWarn('Authentication with xdrd failed. Is your password set correctly?'); - } else if (line.startsWith('o1,')) { - authFlags.firstClient = true; - } else if (line.startsWith('T') && line.length <= 7) { + } else if (line.startsWith('o1,')) authFlags.firstClient = true; + else if (line.startsWith('T') && line.length <= 7) { const freq = line.slice(1) / 1000; dataHandler.dataToSend.freq = freq.toFixed(3); } else if (line.startsWith('OK')) { @@ -306,9 +292,7 @@ client.on('close', () => { setTimeout(function () { connectToXdrd(); }, 2000) - } else { - logWarn('Disconnected from xdrd.'); - } + } else logWarn('Disconnected from xdrd.'); }); client.on('error', (err) => { @@ -369,9 +353,7 @@ wss.on('connection', (ws, request) => { return; } - if (clientIp && clientIp.includes(',')) { - clientIp = clientIp.split(',')[0].trim(); - } + if (clientIp && clientIp.includes(',')) clientIp = clientIp.split(',')[0].trim(); // Per-IP limit connection open if (clientIp) { @@ -380,7 +362,7 @@ wss.on('connection', (ws, request) => { clientIp === '::1' || clientIp === '::ffff:127.0.0.1' || clientIp.startsWith('192.168.') || - clientIp.startsWith('10.') || + clientIp.startsWith('10.') || clientIp.startsWith('172.16.') ); if (!isLocalIp) { @@ -419,7 +401,7 @@ wss.on('connection', (ws, request) => { if (currentUsers === 1 && serverConfig.autoShutdown === true && serverConfig.xdrd.wirelessConnection) { serverConfig.xdrd.wirelessConnection ? connectToXdrd() : serialport.write('x\n'); } - }); + }); const userCommands = {}; let lastWarn = { time: 0 }; @@ -428,36 +410,34 @@ wss.on('connection', (ws, request) => { const command = helpers.antispamProtection(message, clientIp, ws, userCommands, lastWarn, userCommandHistory, '18', 'text'); if (!clientIp.includes("127.0.0.1")) { - if (((command.startsWith('X') || command.startsWith('Y')) && !request.session.isAdminAuthenticated) || + if (((command.startsWith('X') || command.startsWith('Y')) && !request.session.isAdminAuthenticated) || ((command.startsWith('F') || command.startsWith('W')) && serverConfig.bwSwitch === false)) { logWarn(`User \x1b[90m${clientIp}\x1b[0m attempted to send a potentially dangerous command: ${command.slice(0, 64)}.`); return; } } - if (command.includes("\'")) { - return; - } + if (command.includes("\'")) return; const { isAdminAuthenticated, isTuneAuthenticated } = request.session || {}; if (command.startsWith('w') && (isAdminAuthenticated || isTuneAuthenticated)) { switch (command) { - case 'wL1': - if (isAdminAuthenticated) serverConfig.lockToAdmin = true; + case 'wL1': + if (isAdminAuthenticated) serverConfig.lockToAdmin = true; break; - case 'wL0': - if (isAdminAuthenticated) serverConfig.lockToAdmin = false; + case 'wL0': + if (isAdminAuthenticated) serverConfig.lockToAdmin = false; break; - case 'wT0': - serverConfig.publicTuner = true; - if(!isAdminAuthenticated) tunerLockTracker.delete(ws); + case 'wT0': + serverConfig.publicTuner = true; + if(!isAdminAuthenticated) tunerLockTracker.delete(ws); break; - case 'wT1': + case 'wT1': serverConfig.publicTuner = false; if(!isAdminAuthenticated) tunerLockTracker.set(ws, true); break; - default: + default: break; } } @@ -465,15 +445,11 @@ wss.on('connection', (ws, request) => { if (command.startsWith('T')) { const tuneFreq = Number(command.slice(1)) / 1000; const { tuningLimit, tuningLowerLimit, tuningUpperLimit } = serverConfig.webserver; - - if (tuningLimit && (tuneFreq < tuningLowerLimit || tuneFreq > tuningUpperLimit) || isNaN(tuneFreq)) { - return; - } + + if (tuningLimit && (tuneFreq < tuningLowerLimit || tuneFreq > tuningUpperLimit) || isNaN(tuneFreq)) return; } - if ((serverConfig.publicTuner && !serverConfig.lockToAdmin) || isAdminAuthenticated || (!serverConfig.publicTuner && !serverConfig.lockToAdmin && isTuneAuthenticated)) { - output.write(`${command}\n`); - } + if ((serverConfig.publicTuner && !serverConfig.lockToAdmin) || isAdminAuthenticated || (!serverConfig.publicTuner && !serverConfig.lockToAdmin && isTuneAuthenticated)) output.write(`${command}\n`); }); ws.on('close', (code, reason) => { @@ -484,7 +460,7 @@ wss.on('connection', (ws, request) => { clientIp === '::1' || clientIp === '::ffff:127.0.0.1' || clientIp.startsWith('192.168.') || - clientIp.startsWith('10.') || + clientIp.startsWith('10.') || clientIp.startsWith('172.16.') ); if (!isLocalIp) { @@ -496,94 +472,69 @@ wss.on('connection', (ws, request) => { if (clientIp !== '::ffff:127.0.0.1' || (request.connection && request.connection.remoteAddress && request.connection.remoteAddress !== '::ffff:127.0.0.1') || (request.headers && request.headers['origin'] && request.headers['origin'].trim() !== '')) { currentUsers--; } - dataHandler.showOnlineUsers(currentUsers); + dataHandler.showOnlineUsers(currentUsers); - const index = storage.connectedUsers.findIndex(user => user.ip === clientIp); - if (index !== -1) { - storage.connectedUsers.splice(index, 1); - } + const index = storage.connectedUsers.findIndex(user => user.ip === clientIp); + if (index !== -1) storage.connectedUsers.splice(index, 1); - if (currentUsers === 0) { - storage.connectedUsers = []; + if (currentUsers === 0) { + storage.connectedUsers = []; - if (serverConfig.bwAutoNoUsers === "1") { - output.write("W0\n"); // Auto BW 'Enabled' - } + if (serverConfig.bwAutoNoUsers === "1") output.write("W0\n"); // Auto BW 'Enabled' - // cEQ and iMS combinations - if (serverConfig.ceqNoUsers === "1" && serverConfig.imsNoUsers === "1") { - output.write("G00\n"); // Both Disabled - } else if (serverConfig.ceqNoUsers === "1" && serverConfig.imsNoUsers === "0") { - output.write(`G0${dataHandler.dataToSend.ims}\n`); - } else if (serverConfig.ceqNoUsers === "0" && serverConfig.imsNoUsers === "1") { - output.write(`G${dataHandler.dataToSend.eq}0\n`); - } else if (serverConfig.ceqNoUsers === "2" && serverConfig.imsNoUsers === "0") { - output.write(`G1${dataHandler.dataToSend.ims}\n`); - } else if (serverConfig.ceqNoUsers === "0" && serverConfig.imsNoUsers === "2") { - output.write(`G${dataHandler.dataToSend.eq}1\n`); - } else if (serverConfig.ceqNoUsers === "2" && serverConfig.imsNoUsers === "1") { - output.write("G10\n"); // Only cEQ enabled - } else if (serverConfig.ceqNoUsers === "1" && serverConfig.imsNoUsers === "2") { - output.write("G01\n"); // Only iMS enabled - } else if (serverConfig.ceqNoUsers === "2" && serverConfig.imsNoUsers === "2") { - output.write("G11\n"); // Both Enabled - } + // cEQ and iMS combinations + if (serverConfig.ceqNoUsers === "1" && serverConfig.imsNoUsers === "1") output.write("G00\n"); // Both Disabled + else if (serverConfig.ceqNoUsers === "1" && serverConfig.imsNoUsers === "0") output.write(`G0${dataHandler.dataToSend.ims}\n`); + else if (serverConfig.ceqNoUsers === "0" && serverConfig.imsNoUsers === "1") output.write(`G${dataHandler.dataToSend.eq}0\n`); + else if (serverConfig.ceqNoUsers === "2" && serverConfig.imsNoUsers === "0") output.write(`G1${dataHandler.dataToSend.ims}\n`); + else if (serverConfig.ceqNoUsers === "0" && serverConfig.imsNoUsers === "2") output.write(`G${dataHandler.dataToSend.eq}1\n`); + else if (serverConfig.ceqNoUsers === "2" && serverConfig.imsNoUsers === "1") output.write("G10\n"); // Only cEQ enabled + else if (serverConfig.ceqNoUsers === "1" && serverConfig.imsNoUsers === "2") output.write("G01\n"); // Only iMS enabled + else if (serverConfig.ceqNoUsers === "2" && serverConfig.imsNoUsers === "2") output.write("G11\n"); // Both Enabled - // Handle stereo mode - if (serverConfig.stereoNoUsers === "1") { - output.write("B0\n"); - } else if (serverConfig.stereoNoUsers === "2") { - output.write("B1\n"); - } + // Handle stereo mode + if (serverConfig.stereoNoUsers === "1") output.write("B0\n"); + else if (serverConfig.stereoNoUsers === "2") output.write("B1\n"); - // Handle Antenna selection - if (timeoutAntenna) clearTimeout(timeoutAntenna); - timeoutAntenna = setTimeout(() => { - if (serverConfig.antennaNoUsers === "1") { - output.write("Z0\n"); - } else if (serverConfig.antennaNoUsers === "2") { - output.write("Z1\n"); - } else if (serverConfig.antennaNoUsers === "3") { - output.write("Z2\n"); - } else if (serverConfig.antennaNoUsers === "4") { - output.write("Z3\n"); - } - }, serverConfig.antennaNoUsersDelay ? 15000 : 0); - } + // Handle Antenna selection + if (timeoutAntenna) clearTimeout(timeoutAntenna); + timeoutAntenna = setTimeout(() => { + if (serverConfig.antennaNoUsers === "1") output.write("Z0\n"); + else if (serverConfig.antennaNoUsers === "2") output.write("Z1\n"); + else if (serverConfig.antennaNoUsers === "3") output.write("Z2\n"); + else if (serverConfig.antennaNoUsers === "4") output.write("Z3\n"); + }, serverConfig.antennaNoUsersDelay ? 15000 : 0); + } - if (tunerLockTracker.has(ws)) { - logInfo(`User who locked the tuner left. Unlocking the tuner.`); - output.write('wT0\n') - tunerLockTracker.delete(ws); - serverConfig.publicTuner = true; - } + if (tunerLockTracker.has(ws)) { + logInfo(`User who locked the tuner left. Unlocking the tuner.`); + output.write('wT0\n') + tunerLockTracker.delete(ws); + serverConfig.publicTuner = true; + } - if (currentUsers === 0 && serverConfig.enableDefaultFreq === true && - serverConfig.autoShutdown !== true && serverConfig.xdrd.wirelessConnection === true) { - setTimeout(function() { - if (currentUsers === 0) { - output.write('T' + Math.round(serverConfig.defaultFreq * 1000) + '\n'); - dataHandler.resetToDefault(dataHandler.dataToSend); - dataHandler.dataToSend.freq = Number(serverConfig.defaultFreq).toFixed(3); - dataHandler.initialData.freq = Number(serverConfig.defaultFreq).toFixed(3); - } - }, 10000); - } + if (currentUsers === 0 && serverConfig.enableDefaultFreq === true && + serverConfig.autoShutdown !== true && serverConfig.xdrd.wirelessConnection === true) { + setTimeout(function() { + if (currentUsers === 0) { + output.write('T' + Math.round(serverConfig.defaultFreq * 1000) + '\n'); + dataHandler.resetToDefault(dataHandler.dataToSend); + dataHandler.dataToSend.freq = Number(serverConfig.defaultFreq).toFixed(3); + dataHandler.initialData.freq = Number(serverConfig.defaultFreq).toFixed(3); + } + }, 10000); + } - if (currentUsers === 0 && serverConfig.autoShutdown === true && serverConfig.xdrd.wirelessConnection === true) { - client.write('X\n'); - } + if (currentUsers === 0 && serverConfig.autoShutdown === true && serverConfig.xdrd.wirelessConnection === true) client.write('X\n'); - if (code !== 1008) { - logInfo(`Web client \x1b[31mdisconnected\x1b[0m (${normalizedClientIp}) \x1b[90m[${currentUsers}]`); - } + if (code !== 1008) logInfo(`Web client \x1b[31mdisconnected\x1b[0m (${normalizedClientIp}) \x1b[90m[${currentUsers}]`); }); ws.on('error', console.error); }); // Additional web socket for using plugins -pluginsWss.on('connection', (ws, request) => { +pluginsWss.on('connection', (ws, request) => { const clientIp = request.headers['x-forwarded-for'] || request.connection.remoteAddress; const userCommandHistory = {}; if (serverConfig.webserver.banlist?.includes(clientIp)) { @@ -600,7 +551,7 @@ pluginsWss.on('connection', (ws, request) => { let messageData; - try { + try { // JS Requires the try statement to have braces, unlike the if statement. This extends the huge list of proofs that this is a fucking toy language messageData = JSON.parse(message); // Attempt to parse the JSON } catch (error) { // console.error("Failed to parse message:", error); // Log the error @@ -611,9 +562,7 @@ pluginsWss.on('connection', (ws, request) => { // Broadcast the message to all other clients pluginsWss.clients.forEach(client => { - if (client.readyState === WebSocket.OPEN) { - client.send(modifiedMessage); // Send the message to all clients - } + if (client.readyState === WebSocket.OPEN) client.send(modifiedMessage); // Send the message to all clients }); }); @@ -622,7 +571,7 @@ pluginsWss.on('connection', (ws, request) => { }); }); -// Websocket register for /text, /audio and /chat paths +// Websocket register for /text, /audio and /chat paths httpServer.on('upgrade', (request, socket, head) => { if (request.url === '/text') { sessionMiddleware(request, {}, () => { @@ -671,9 +620,7 @@ httpServer.on('upgrade', (request, socket, head) => { pluginsWss.emit('connection', ws, request); }); }); - } else { - socket.destroy(); - } + } else socket.destroy(); }); app.use(express.static(path.join(__dirname, '../web'))); // Serve the entire web folder to the user @@ -691,18 +638,13 @@ helpers.checkIPv6Support((isIPv6Supported) => { const startServer = (address, isIPv6) => { httpServer.listen(port, address, () => { - if (!isIPv6 && !configExists()) { - logInfo(`Open your browser and proceed to \x1b[34mhttp://${address}:${port}\x1b[0m to continue with setup.`); - } else { - logServerStart(address, isIPv6); - } + if (!isIPv6 && !configExists()) logInfo(`Open your browser and proceed to \x1b[34mhttp://${address}:${port}\x1b[0m to continue with setup.`); + else logServerStart(address, isIPv6); }); }; if (isIPv6Supported) { startServer(ipv4Address, false); // Start on IPv4 startServer(ipv6Address, true); // Start on IPv6 - } else { - startServer(ipv4Address, false); // Start only on IPv4 - } + } else startServer(ipv4Address, false); // Start only on IPv4 }); diff --git a/server/libraries/aarch64/librdsparser.so b/server/libraries/aarch64/librdsparser.so deleted file mode 100755 index 978dcdc7e561559195f6860c1def659f7653d4b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 82064 zcmb<-^>JfjWMqH=W`^wy2p$82161OIB|_AJ!GeLE!GS@VK?=pW(`aRvz}4b{iQz`y{~cLS>L22>x6egH9s0Y-B`wX-lV zFo5t0s60BY0#yg2L25xl0Z&U(Kx~OQARYq)I_<&?5r@$rwIGqerzI&McY@f&U;(J2 zAgFz~!o>m<01ONaFdFI|u-`-&7#Kj#arX;l@R+p2X5KyCnw&E2y1?QOd)@>dQ3P3$ z$iTqB&%nR{vX2WSz^Kr`%p}0X1QOs;Uo?4FflMNDmF4OF)(^C zC^0ZKGO#o-v~&asF>o*}U}0brVo*_FVbQ###w5ViAjinnz-THUz``mLsN~4f5axV< zg@udBsethTgA)q}0}m_68jwv422LyrEDTP9U~7;FklR39kc1G30mUG{i7_xRfRY6$ zNk}pC_NAX#rg~k z42BF048{x$45m;qb5K|_Ffdp``BqTchJk^>7Rt7V(oPHv49*M;3@%VUjB;aOU~q?W zJQx@lJQ)}mycrl6d>I%R{1_M*0vH$=0vQ+>f*2SWf*BYXLKzqs!l3G5R0IP9LnH$O zLlgr8Lkvuifq@~8fq@~Ofq@}`fq?-Ow@C~P49QUW6b1%{bOr{73ESESq}h;oGyDYQs$r ziA=IN{C)r9&#R)^T;d*nUu8FKV$gG=5|#wL+sj_}vzC3HGr1z`YHp>O`-fj^TiZ|N zTOSl!TqE%Nvx~W^&5f68E=yW}^sd=d%gU8~_~BcTCw;xwr9SLaoc;LmWF@Ipo_Y6m z4$iZ87yT5M|NV0uXVz(nw5oa8_N>qPdM{fSbnN$R|I>a}`a{Lxhi}*Y6pk}&RNJY$ z{r|?JkNbK>FD#q+|IqjS(CEQQF*9&7TtJR|s7huAQHBqU(1HOfrq0R0fSiAz!VKv+ z#6g)7lz(9AU^FQ0BIhZX_ySh!=9l6Sm%||rD!;JV%frgR04f7u_QB{p9PSUqVLm9Y zV>AB(SUopG0Voqd>jsb=lc3@zP;mp0AgF9%2l6Tk=^T;s!+!b6{o8 zd#L&cpbXEzz;Fj5%}@jN*A=Kcd7$E9Q1Jp#fq+!DECiJc4BQM`Km`f|0|Trq?T7j| zp%P*MD11Sz?NId(pz2}nzYg`+0W^QH!Q5X8(#^oo15Lh-Q1K^F|H8uA3@ZMh5TYLD zUnxdNI5E1gJT%_FNiN{ROCcs5FB+)V~*??tv9IEYR?LfM#zIG@Tnj(|H3Z z5EvL34np0z0Zn}ZG<_O?DkUU;sY30YfEK@Rq2^pbGiMRh-UCp3Vd+p0Tt09!Jb~(Nd^*0<_$KTElP_>V5~P`(f$F6sleT8g8)gTn=@A3bg!$h0jr_J6oXk z!o<%&&G`UzKg>O$(D+h-#xKnLCa8NJpyl_&(DZo#lrfRYD>bUw z1hN9uX8@J+4?vv&21LJI9;*HWn!m!K;Sc}~A6Wh61PuoVsCtlx%qkV#U+VF zCGqhL@tz^R@hPcAsp*-;C8k#?rji2eda#MZv?Sutf<+vv zCAS#67Hr~BEvd=L*!5tQfNDz4FU>0{!VwHOB@$^Ip9zw z;`0)7k<%cWY-Vvjl3mFq@n{Juxg;KxP%2T=BvdpvKd&SMRXa#=N+PnSp=vYoOOaDG zR5Uj;ue1ckc@X>Z)6!6LN@{X4rccw0@=FWi!I=xm6`;hAk}|;pD9H{af|97fCK+HD z1va`U9vY#=B}JKe>1Z~UASX1CxhTm9BR0Vn8Ddxj(ukUtKmm#23uxpaIRR{*5vF-y zr-Gv{u`Dq&2V7zy3L=P4Fv=9LVJ1++;z6Zga&~-jMs|F9X<|_d1F}e3VrCAyGYl~U zFs&#RC3exuHgICgP0dA(YpCnMk_b2FrIs_~Cg$YiBWFc$1R=Qt%rA;BD9TSxEk@4g z-~h%|B7(viXK@KOG9Kb4B%4Z0GINUKlk@Y+Qj3sFV30*6sTC#h$@xV^smUdo`FTjX zKsMo)h3hRS%1N-X57*RD9IeG0l8=Z3m_+0kN`@81qom#L@enpwFI@8 z0%kdv8|tXG_`XU33|qMMVMS6ZQ)m{^pYVP*mnH3Z4SO98#&dXXda1?p`McgJf8vTTTGugjSVylvXm1c zUka56i9qC;7+~_S`6gy)gZu)t{d@sBuLKisfQrM$Sz+QZJ_8e^0|pakXam{Cz`%hf z&H)t{Kob{$ic6r0OF+dH(8M*M;u>h;22gPWG;s^4xCNTH1614rP22-2?tvyA02L2F z6VHH(N1%xpK*bZ##4DiU8EE1SQ1JpZ@d;4z3N-Ng0Tq9NCT;;0|9~d$02Tj%CLRD4XJAH6{}E7e4m9xusJH-{cm`Bl0!_RC zDz1PgUI7)?KojqPiW{JbPk@SBpo!0biaVf*uYihspo#B*iU**H-++oopou?#iYK6n zzkrHopoxEgiWi`X|A2~DpouedK+;14nz#T|yaP>K0V+NLP22)1J_AkM0V=)#O*{Z9 zz5-1=0xG@%O*{cAz5`7>11f$1O}qdqegaLr0xEt1O}qgregjRs11kOiO?(1W`~{l$ z0;u>0H1Q2k@gHd72cY5%EU4-K1XP>@P5cH_TmVh{15{iBO`M?<62A&);v7(M4K#5H zsJH=|xCT_*0!`ciD(-+L?f@0{Koj?XiU**HM?l3R(8Lp<;t6Qt1yJz}H1P(gcmbMt z2UNTQO?(Daya7#o1ysBPO?(4Xd;*&I0jT&4H1QKq@daq&7og%R(8M1=#W$ddzkrJG zKokD~6+eI`&H);r2Ca`l6BmGrUqBO=fQsKh6W4%>KR^?=fQr9B6L)}$e?SxWfQtV> z6OVw3Gq9qj{|u-&2by>RR9pZ}ya6gMfhOJo6<0tLp8yrtKog$<6*oW=UjP-iKoeg9 z6?Z@r-vAZ&KodUz6%RlYzW^1FKoh?K6;D7De*hKFKokD}6)!*&{{a=RKoe)^hLjHt zXyOu3@eVX`1*rH0G;sr{_zX003#j-4G;t58_zE=f0I2u|H1PfF^zdD*gja`~p;*fekhNKY)sJ zpozbLiVL8LGxR{>Q36ez11he7CN2RL*FY23fQlQSi5o!0Ezra*pyCc_;to)84>a)r zsCWRHcmh;B0!=&vDxQEQUH}!(Kof6(iWi`XPk@S7pouSliZ`H%uYihopo#B*icdfj zKL8bEQ&LxByiA0-Cr2 zRQv{-xB*oB0h+i2RQv^+cmP!V1DbdQRQv~;cmY(LfgLsdH$cTX(8MP|#RbsBS3t!j z(8PB@#TC%RPe8>r(8M1=#SPHJ8TugMX@Mp#0Tp*Z6W4%>d!UIMK*a;l#4VuW5oqEb zQ1Jvb@d&7R2AX&VRJ;I9yaFm-fhOJo6>mTjp8*x`Koeg86`z16egG;y15Nw{RD1!N z_zS4`3N-N_Q1K0D;sX7U@ZW(Zt^gH3fF^DM6+eL{9sm`;fF@o56~BQd-T)PUfF`~G zD*ggZd<9he1Df~&sQ3>w@e@#S1`gEp{{kw`fhPU|DlUK~&M*NIJ`!l+0#I=UG;s;2 zxCWZI22|VtP22%0ZhW1vGIBsQ3*uaSy2Y12pl5dWid9pow=t#Xq2l zPk@U5Kog$<6=&c?P5%p^;v8t=E1=>6XyO~7;u2`$JD}nUXyON;;u>h;C!pd6XyO;3 z;udJ)H=yDUXyOl`;vQ(?FQDQ9XyPBB;t^=#KcM0XXyOdeg>o5a;v7)%0yJ>}sCWgM zxCB(Z0Zm*1D&B!6t^pOFfF^DL6`z47ZUGfvfF|w$6<>iS?g16wfF>RQ72km-9sw0U zfF_;*6+eL{o&goVfF@o56~BQdUI7(FK*crC#7{uQ4ba3dK*cT4#BV^w9ni!dK*c@K z#9u(g1JJ}jK*b}_#D74=6VSvNAR9~=GSI|1pyCB+;sQ|d3N&#EsCWaKxB^tX15I25 zDn0>C+yE**15MllD!u?s9J)bg@gHd7Goa!O+-T_^D$ao>z5*&PfF`~H zDlUO0z5^<*fF^zbDz1ShegZ0PfF^zcDsF)$egi7*fF}L`D(-B(8M{Q;st2p0#NY^G;s;2cmtZa0#v*MOmTjSAdFlpowch#V4SN8$iWppov>R#TTH7J3z%(pox1x#W$dd z2SCMlpovF7#Sfr~CqTtdpowQd#V??V7eK{tpov#N#UG%FH$cT-pow=t#Xq2lPk@U5 zKog$<6=&c@OaD-D4m9xWODJ1_u;cm$gG3#d5>XyPBB;u&b-KcM0TXyOblko;1CCe8sBZ$J|l zfQomZiAzAmC!mQdK*eXEiEBW`7ods5!eIrPxB*oC1~hRCsQ3;vaR;dQ0W@(BsQ3vq z@c^j!1vK#psQ3*u@dT*&12pjrsQ3#s@dBv$2Q={tsQ3>waacZO;6qLS4N&zQXyP4E zaRD^(2~cqfH1QcwaRoH-1yFGfH1QQsaRW5*4N!3lH1Qo!aR)T<15j}fH1QKq@c=aO z3sCV0H1Qiy@dPyS2T<`0H1QWu@d7mQ4^Z(6G;x^v1~l;>Q1u;X;xP3S(8L*9A^B?t znmA1T0yJ?BsQMLX;xP3a(8L9x>UW@t!_*%@6PJLhKY=C=Q-1+XTmh>72AVib{R1>{ z4XFATXyOJ?@egR?7EtjYXyOh~aRz?W^zQ)`=Rgw=fQk#CiAO-iCD6nZpyCQ>;u%nJ z4K(orsJH=|cm-740!_RDD(-+L-T@W&Kog$;6%RlYp8*w*Koeg86;D7DUjY@*Koj2p z6)!*&-vJe`KodUz6>mTjKLHi*Koh?J6`z16egi5#15Nw^RD1!N_zS4`3N-N#Q1K0D z;y<9`JJ7^o^~eD<@fnjL`SAprcmi}h^8%W922}h8ns^0N`~jNy4XF7q(8N2S>OY`~ zH$cUIpovd_iZckHrvC*{aSk-`4N!3bH1Qo!aS1f>15j}VH1QKqaSb%_3s7+bH1P*e zaSJr@7f^8rH1Qu$aSt@{9nf$KKoeJ(1c|Q*G;s^4cmkTZ2UI)*O*{fBUVtW^0Tr)6 z6EA>@H=v1MfV#5-P5c2=d;*&I2dMZAH1Qu$@dY@U>ZdH1e!QJ{iBIXK+U;;s>DSXrPJTfQlQSiNAn~TcC+wfST`sCJu{7 z4>a))Q1t<5;tbOv@fCq4E-)1$o`5E<02R+b6E}d07odqJK;2(~CY}KmZ$KA^n$v+M zUI7)KfF|An6`z47J_9Pg08M-aRD1=R_ztM}1~l;#Q1KmT;u6qsJAfu00WE({pozoN zKbrUnX#To^CJrzE(Zu29Kbkna{6`bN05$&yn)m~#ID-&s`u_kG=RgyOm;Y$u@bVu` z9A5sTiNni(G;s!Kd1Zhm4ln=F#08-09ni!TpyD2A;u=u#0CaJve8CcXgMZdqNx;;`~(0h)LNRQ(Dx@eZi?1~l;*Q1KmT;t!zd?EsoMy!=NKho^ruaacR&2AVj$ z{6`aqm;Y$u@bVu`9Nzv%6Nk6|MNrc}y#0?R4ln=F#9{FwfhG5ns zd;-)Q4K(ouP;mn^@f}cc3p85ns9Nzv%6Tbm< z=Yju_gNGPd7#NVxlRbeXj(nc#1tf9sIi`?q7Q+oBac-y>hh6{fh2AUQV7KfNaCHv~B z=zL<37zm$05(k~D3=#w33rOOyvsFRjH;}~TK>|?x07*O=Dh8rnAc+fu1fW=6f%)p+ z>isMKGBZqMWn`H0xBB3U1I+Q)pwbK zf=muS1(+DXa$r82!%qPvBtDnJPXQ++KA*!+fg~ipki$=bCM3R?!%u-lNPH=Wp8|)F z_;L){xp#NNc=32 z{Yd;gko`#fB9Q$^{4$XJNc<|0{Yd;eko`#fCXoFs2>aVW_9OATK=vc?`#|<1@h5@o zN8(Qd*^k7Z1+pKBKM!O-5`PiMepZD2%Ru%c@mGQDN8+yo*^k8E1hOBAzYSzR5`P!S zemMVv;69N3Nc=+}``KXjUl2S7vLA_m3S>VL{~XAEB>p9k{Yd<4Ap4Q{w?OtI@$Z4` zN8&#M+0Tx!{~5@BB>pRq{YdGMIzi`o#Tb0|UdB0}Koo7=AeXWcdGo`t|?+rzagf;{tSG}E#LUnTq{PAy=p@4+6tBZvsKLk(qEf>g ztjNJ2#3axVq|DF|$APhE7;DDu~41+L+nHvsRg2dovZeRer1#G4Ogv}t} z02Tw81;SwSL~xk51q%mAAw0bw&pU@=byhk1L@ z%-aJo18klQgv}s>#XNxnm5Mf4!Y|=KB}(`uK++W0JOK!sLBIi=&Ol)Y!r<`JZ~(=J z5J)dd9G`GNjgJ!$H-XL5fUp@fP~G>pdM_le1~aZSkzo)5rN6Jj3_nG67$!bs7SVdZ zEV@eg-~Z_fObq4;PL7rb7#Pfo&%xw`SMmJ&KOL05U}{0>`l~P~4)>@4q;R4`M4eNKXXGJ3X+SIO!jx3`vt= z5O$Jb5WfG0q3|g)!zzax;Z-d%48kCHt>I<}na{vb*Z?|$eMv(UsC;4OkqJ&_VDLW7 z!pxm1!yuF_!ysJ$hM_Q*iy=foaAJ@X3xgno;Km}5+JqW~*$jUYE+;TBa5L1f3NzF+ zdvoT<1Zy%fcxQ5OdTYuu2sPBWa67Oxa5Kp;2r+>2R18C5E+<1sQs~qmMHU7@r_iNE zOf^cgo&F?EcB*Occ4A@TX5wM;2ASV{Xns%|PeTy%-~B}jd*%c=Y~53|;p)U7H6AwU z_lqY4<=d_*(%8Tl$g4dki0@HL(Ar1)iqxCCgO1fKn0@^6wxUG>43;`sQ-gXK78Gf{ zZVEd5BmXieZM-tuRg}%xAhbk+!SdLj{L9HT0@BAe$O^6$VX#cDSwB1ZPwHhw24-(X z6FzCBn&q>d{v=#hWMJ}kWO3wHN(s8`Zov@f$ifi#T!ul&sfI`TKLbN{%Eb9n$6DH? z6d72!7jiIIE@NP*bgWr5Tk%gW$SiI~Mn><2JdiY*{QbX~6AMEiC~QFf)cnXG2nr)m zcp-<=n{WR^9)Q#)FbFC_%m3Z~|BEv)Ao2(U2Wt9e;6dY~l}G6138TaTO9dU7Ur8N*{vhleL%FFQ#423Kbj#i*_vw(>qM8SqZ2;>Lm1}1R5lx)KwR4>6$ z_>z$!gxP^P5X=`~DC}fr2w`r3@bs7#U1J`5ig0H!?X?PWk(PI#~Yyf73=bhe}ZSqNw6} zdEMXt(_ws=K1B_$%YUm6uc-eE$-CI>2bWjTOe?>E?Pu0l^{2O!W-m1MFE$~*Z;uWD!fXO$N6&p-~ZE}fZASc4wec3{+k})a%vH^MC$N2Z<^E1YJE?3UJ26kQ`zC?2WI9~Nvj-xLi~Aj z1*km>a*sTNWHua8z^0`{qujixD11k!*_Nw5dY_&|I>H; z|1Yi}&mepY+NS+~nBn3P28InSZ`^uZHW|39r{`{ZLz{p?*3gd^&BC9}VfxU z(O1DV)5@?v|EGh}7c4#ht=_W|6rP}Q3>6lKN>KXx%FMK?je$YvyEMa3@c^EQkC>UY zrZIrxL3Gs?BRgWLj2 zJ5CG@LF++om0=K?4^2A>j0_=3*BpN;LDLRM?RRNVnqgW6%JZOf@wfU2IL(0A;4~r) zYQr1>rw@=nU>MZT3jc%XXTkF#wC(Qm=l}GCAjXMxAXxc3{9*JVKF z1u;%!WNZl9`TPI$1R6CW@$u6hJ52QL5qKOGde4;UHDzec;P6an?mK>b`$ z9^gmK1C5NJJm9qQ0keqK=V0fR|D74Zc>!h?D6YBxfXZB#mGA%m7ylZ~vU2@zNZJI& zDFcgQH>j=2z@XG!&%sdW$j}g!JfTsFS%w$fZvn}JX7$FoeXjFciwa;In)vK3|IQ2_IN3*n9@XZUzB}UJxG?pRjNSg|W=<|I-yf z`D&fx&qqjg5GcGqFf*+J^$|g38Hf*JgTj9~Qh1}AR{%3_6Y=Jy<1z2YFR1&r5pUjn zJm#H&xo;Qo=Dq%fNMGpw?SYxMk9hMw<1r8J-$TTkr;o?K2VmiMjCk|DV{;!`UH|FV z|LF@D8O)MTIsQy$WZ2TMvn!~Pry)pzVL=hBE^K6Clm?}LP?-iwJK%H#9d`hwBT#zG z`Tbv{#G9b*FU(_M*jLQj!SM59=Y`>>1!vr{Re92 zRmd<1T?dT;1T(G#`#YLx&k^56&4Fv94wpP z`B@rE$OjiQF>*72X$J0MIff$8m{2hrLm-Il#4=yXiGi8Bk)a`|fz7hprru$)GpHXe zz)3<|!MATii@T^Iv{ z$S-Db@c2X&JHy0pKf!I?RiJj3wMV(dr=S0)Gh|d*$TLW1gT$1%7((7c#UA7{?3~3U z(=8!if7za$q3|)Yu-0$!`BD#=#kE|7eJ!6dOKTm_2tO|=?Yz%@?@}TyIwAMprDJ_s0AhjSpFR~eSCjI(9{YAFJPEZ?`osmH+l8M2z z;hCQ$0~3SU!+eLGiVVV93mF+qpR+QUH46D!9%NuJYkYOi(%y%mFqeTLr19N3OGb7E z)91_#TJwc?E$6@DvjpY0DNHimAh&_+1GyLERyBr(pcWxtOOQK3Zg`%}u+!<+|LJTp z3_{Pd9d?4$g4_&J3sQHPfgS8-kXn#l^Iwp*b^;TF7AT#9+ds+9D}QFYto&WF^GWWCqd;w z^~*s9h6#$G_6sw^L{NL{zcb%OVbFLDxIf_V^U-m}pG*u5m+H+J3KuXkggjPen8?V$ zaNz+n^D4yzrHM=h4VRRD{-6FBG#1O!5L92sPzXx5#Z3%>2{(#&z|4Pq-0`OpgTv2c z2By~_^FZy0|IU09k?Z=FpZ}+W#;h5kW3&tckhVT3Er2kryaJU`q6`j}SHb;ONd6UO zXt>0}z#vl0#xQX|lW}$?BSQ$NESmiD|8&NR;vJ6v|C^S|F$jU;`~kD57IK+`O$=fm zbiA9J;ioWzgJr|d|I>@*>Mj=xfliPT?nZVyHuXF||4-k{$Y8?6VBF2jz#t;e!1P*y zks*YU!NHP&g<+z-218-O|NkK%b3pB5P`w4JUqF0NI)U*)W`i)g{~`SahE-8N|4#?C zuR#8N|KtDkQYHqIMQqSH0||ygPf>=DL@v{AW(L!4d1!ws$;kQFBG7mZOGA(oV?z+g z{NyUd9ZVUD7K$vOFjUO$0J$v~wS11ZU?}7iW(Z+mVf0^E#}e%Ll)*oNiD7L56XRM& zh6Y=E7KXwD91I}|OiXJNn3&fxvNYJ*b1)PtfW=tWCNQzCW#nkEwdY|dY+wheV_TcR z#J-l1r@_`ZIJ{h6? zd=8%yzWxtc#KZ_5=X8dR|4J|vu4IIStBOqBWyhxs{HaVV-OdHFLdp!x+zDArY!
  • }OKR=KS7Y6t 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 diff --git a/server/libraries/arm/librdsparser.so b/server/libraries/arm/librdsparser.so deleted file mode 100755 index 7f65101b790556fb449bf4316f92cbb291a2d383..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36812 zcmb<-^>JflWMqH=W(Exg7|(=(fniTK0|NsK1FH#x0s|X^27?rXBwQY*$0w430fbpW z0s;(Rd5(An29A6P{=&_`@PnIyfek9p#K6EH5YNCMkPpEh7#J8p7$naEwvK_}3j+eH zFfcHHFibA+X-NvmD0B?cFTlXS5cISp1=;=|3=9k)4AKws8;BNRU|?WoU|?|f3uRE3 zb^Y4AhuWZ(qJf-$3VBLfoyqZ5M?gGVC^#{`Ckop*^G!*V zU|>*ZU|`Tq+@149M_14AYQ149;6JePriA&-H9A)kSPp#T)l>8g@Pk0%x#Jn()0Kc>)o zl`HI~tuna4xBY2ful=g8w=W)A6(#t;)VihEdZR;-{>0;F;#qnNdQE-StXUfOw6AwQ z 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 diff --git a/server/libraries/macos/librdsparser.dylib b/server/libraries/macos/librdsparser.dylib deleted file mode 100755 index f2decd9118ab603e5ebf3c978f98f4927692c9a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 88912 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 c$}4p0tMK5Hq)$ diff --git a/server/libraries/mingw32/librdsparser.dll b/server/libraries/mingw32/librdsparser.dll deleted file mode 100644 index 82283f174c9b7aa78d7ede3b80c8b4294312b43e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 116908 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℞%xXo?fG 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 M2$BO~kewhJ00HBFlmGw# diff --git a/server/libraries/x86_64/librdsparser.so b/server/libraries/x86_64/librdsparser.so deleted file mode 100755 index 1692d600de0e39a3dfdc77c6bdca288260800d42..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 63864 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 6; + const b_error = (error & 0x30) >> 4; + const c_error = (error & 0xc) >> 2; + const d_error = error & 3; + + if(this.last_pi_error > a_error) { + this.data.pi = blockA.toString(16).toUpperCase().padStart(4, '0'); + this.last_pi_error = a_error; + } + + if(b_error != 0) return; // B chooses what group this is, if this has errors, we are screwed + + const group = (blockB >> 12) & 0xF; + const version = (blockB >> 11) & 0x1; + this.data.tp = Number((blockB >> 10) & 1); + this.data.pty = (blockB >> 5) & 0b11111; + + if (group === 0) { + this.data.ta = (blockB >> 4) & 1; + this.data.ms = (blockB >> 3) & 1; + + if(version === 0 && c_error !== 3) { + var af_high = blockC >> 8; + var af_low = blockC & 0xFF; + var BASE = 224; + var FILLER = 205; + var AM_FOLLOWS = 250; + + if(af_high >= BASE && af_high <= (BASE+25)) { + this.af_len = af_high-BASE; + if(this.af_len !== this.data.af.length) { + this.data.af = []; + this.af_am_follows = false; + + if(af_low != FILLER && af_low != AM_FOLLOWS) this.data.af.push((af_low+875)*100) + else if(af_low == AM_FOLLOWS) this.af_am_follows = true; + } + } else if(this.data.af.length != this.af_len) { + if(!(af_high == AM_FOLLOWS || this.af_am_follows)) { + var freq = (af_high+875)*100; + if(!this.data.af.includes(freq)) this.data.af.push(freq); + } + if(this.af_am_follows) this.af_am_follows = false; + if(!(af_high == AM_FOLLOWS || af_low == FILLER || af_low == AM_FOLLOWS)) { + var freq = (af_low+875)*100; + if(!this.data.af.includes(freq)) this.data.af.push(freq); + } + if(af_low == AM_FOLLOWS) this.af_am_follows = true; + } + } + + if(d_error === 3) return; // Don't risk it + + const idx = blockB & 0x3; + + this.ps[idx * 2] = String.fromCharCode(blockD >> 8); + this.ps[idx * 2 + 1] = String.fromCharCode(blockD & 0xFF); + this.ps_errors[idx * 2] = error; + this.ps_errors[idx * 2 + 1] = error; + + this.data.ps = this.ps.join(''); + this.data.ps_errors = this.ps_errors.join(','); + } else if (group === 1 && version === 0) { + var variant_code = (blockC >> 12) & 0x7; + switch (variant_code) { + case 0: + this.data.ecc = blockC & 0xff; + this.data.country_name = rdsEccLookup(blockA, this.data.ecc); + if(this.data.country_name.length === 0) this.data.country_iso = "UN"; + else this.data.country_iso = iso[countries.indexOf(this.data.country_name)] + break; + default: break; + } + } else if (group === 2) { + const idx = blockB & 0b1111; + this.rt_ab = Boolean((blockB >> 4) & 1); + var multiplier = (version == 0) ? 4 : 2; + if(this.rt_ab) { + if(this.rt1_to_clear) { + this.rt1 = Array(64).fill(' '); + this.rt1_errors = Array(64).fill("0"); + this.rt1_to_clear = false; + } + + if(c_error !== 3 && multiplier !== 2) { + this.rt1[idx * multiplier] = String.fromCharCode(blockC >> 8); + this.rt1[idx * multiplier + 1] = String.fromCharCode(blockC & 0xFF); + this.rt1_errors[idx * multiplier] = error; + this.rt1_errors[idx * multiplier + 1] = error; + } + if(d_error !== 3) { + var offset = (multiplier == 2) ? 0 : 2; + this.rt1[idx * multiplier + offset] = String.fromCharCode(blockD >> 8); + this.rt1[idx * multiplier + offset + 1] = String.fromCharCode(blockD & 0xFF); + this.rt1_errors[idx * multiplier + offset] = error; + this.rt1_errors[idx * multiplier + offset + 1] = error; + } + + var i = this.rt1.indexOf("\r") + while(i != -1) { + this.rt1[i] = " "; + i = this.rt1.indexOf("\r"); + } + + this.data.rt1 = this.rt1.join(''); + this.data.rt1_errors = this.rt1_errors.join(','); + this.data.rt_flag = 1; + this.rt0_to_clear = true; + } else { + if(this.rt0_to_clear) { + this.rt0 = Array(64).fill(' '); + this.rt0_errors = Array(64).fill("0"); + this.rt0_to_clear = false; + } + + if(c_error !== 3 && multiplier !== 2) { + this.rt0[idx * multiplier] = String.fromCharCode(blockC >> 8); + this.rt0[idx * multiplier + 1] = String.fromCharCode(blockC & 0xFF); + this.rt0_errors[idx * multiplier] = error; + this.rt0_errors[idx * multiplier + 1] = error; + } + if(d_error !== 3) { + var offset = (multiplier == 2) ? 0 : 2; + this.rt0[idx * multiplier + offset] = String.fromCharCode(blockD >> 8); + this.rt0[idx * multiplier + offset + 1] = String.fromCharCode(blockD & 0xFF); + this.rt0_errors[idx * multiplier + offset] = error; + this.rt0_errors[idx * multiplier + offset + 1] = error; + } + + var i = this.rt0.indexOf("\r"); + while(i != -1) { + this.rt0[i] = " "; + i = this.rt0.indexOf("\r"); + } + + this.data.rt0 = this.rt0.join(''); + this.data.rt0_errors = this.rt0_errors.join(','); + this.data.rt_flag = 0; + this.rt1_to_clear = true; + } + } else { + // console.log(group, version) + } + } +} +module.exports = RDSDecoder; \ No newline at end of file diff --git a/server/rds_country.js b/server/rds_country.js new file mode 100644 index 0000000..8ec2d02 --- /dev/null +++ b/server/rds_country.js @@ -0,0 +1,632 @@ +var countries = [ + "Albania", + "Estonia", + "Algeria", + "Ethiopia", + "Andorra", + "Angola", + "Finland", + "Armenia", + "France", + "Ascension Island", + "Gabon", + "Austria", + "Gambia", + "Azerbaijan", + "Georgia", + "Germany", + "Bahrein", + "Ghana", + "Belarus", + "Gibraltar", + "Belgium", + "Greece", + "Benin", + "Guinea", + "Bosnia Herzegovina", + "Guinea-Bissau", + "Botswana", + "Hungary", + "Bulgaria", + "Iceland", + "Burkina Faso", + "Iraq", + "Burundi", + "Ireland", + "Cabinda", + "Israel", + "Cameroon", + "Italy", + "Jordan", + "Cape Verde", + "Kazakhstan", + "Central African Republic", + "Kenya", + "Chad", + "Kosovo", + "Comoros", + "Kuwait", + "DR Congo", + "Kyrgyzstan", + "Republic of Congo", + "Latvia", + "Cote d'Ivoire", + "Lebanon", + "Croatia", + "Lesotho", + "Cyprus", + "Liberia", + "Czechia", + "Libya", + "Denmark", + "Liechtenstein", + "Djiboutia", + "Lithuania", + "Egypt", + "Luxembourg", + "Equatorial Guinea", + "Macedonia", + "Eritrea", + "Madagascar", + "Seychelles", + "Malawi", + "Sierra Leone", + "Mali", + "Slovakia", + "Malta", + "Slovenia", + "Mauritania", + "Somalia", + "Mauritius", + "South Africa", + "Moldova", + "South Sudan", + "Monaco", + "Spain", + "Mongolia", + "Sudan", + "Montenegro", + "Swaziland", + "Morocco", + "Sweden", + "Mozambique", + "Switzerland", + "Namibia", + "Syria", + "Netherlands", + "Tajikistan", + "Niger", + "Tanzania", + "Nigeria", + "Togo", + "Norway", + "Tunisia", + "Oman", + "Turkey", + "Palestine", + "Turkmenistan", + "Poland", + "Uganda", + "Portugal", + "Ukraine", + "Qatar", + "United Arab Emirates", + "Romania", + "United Kingdom", + "Russia", + "Uzbekistan", + "Rwanda", + "Vatican", + "San Marino", + "Western Sahara", + "Sao Tome and Principe", + "Yemen", + "Saudi Arabia", + "Zambia", + "Senegal", + "Zimbabwe", + "Serbia", + "Anguilla", + "Guyana", + "Antigua and Barbuda", + "Haiti", + "Argentina", + "Honduras", + "Aruba", + "Jamaica", + "Bahamas", + "Martinique", + "Barbados", + "Mexico", + "Belize", + "Montserrat", + "Brazil/Bermuda", + "Brazil/AN", + "Bolivia", + "Nicaragua", + "Brazil", + "Panama", + "Canada", + "Paraguay", + "Cayman Islands", + "Peru", + "Chile", + "USA/VI/PR", + "Colombia", + "St. Kitts", + "Costa Rica", + "St. Lucia", + "Cuba", + "St. Pierre and Miquelon", + "Dominica", + "St. Vincent", + "Dominican Republic", + "Suriname", + "El Salvador", + "Trinidad and Tobago", + "Turks and Caicos islands", + "Falkland Islands", + "Greenland", + "Uruguay", + "Grenada", + "Venezuela", + "Guadeloupe", + "Virgin Islands", + "Guatemala", + "Afghanistan", + "South Korea", + "Laos", + "Australia Capital Territory", + "Macao", + "Australia New South Wales", + "Malaysia", + "Australia Victoria", + "Maldives", + "Australia Queensland", + "Marshall Islands", + "Australia South Australia", + "Micronesia", + "Australia Western Australia", + "Myanmar", + "Australia Tasmania", + "Nauru", + "Australia Northern Territory", + "Nepal", + "Bangladesh", + "New Zealand", + "Bhutan", + "Pakistan", + "Brunei Darussalam", + "Papua New Guinea", + "Cambodia", + "Philippines", + "China", + "Samoa", + "Singapore", + "Solomon Islands", + "Fiji", + "Sri Lanka", + "Hong Kong", + "Taiwan", + "India", + "Thailand", + "Indonesia", + "Tonga", + "Iran", + "Vanuatu", + "Japan", + "Vietnam", + "Kiribati", + "North Korea", + "Brazil/Equator" +] + +var iso = [ + "AL", + "EE", + "DZ", + "ET", + "AD", + "AO", + "FI", + "AM", + "FR", + "SH", + "GA", + "AT", + "GM", + "AZ", + "GE", + "DE", + "BH", + "GH", + "BY", + "GI", + "BE", + "GR", + "BJ", + "GN", + "BA", + "GW", + "BW", + "HU", + "BG", + "IS", + "BF", + "IQ", + "BI", + "IE", + "--", + "IL", + "CM", + "IT", + "JO", + "CV", + "KZ", + "CF", + "KE", + "TD", + "XK", + "KM", + "KW", + "CD", + "KG", + "CG", + "LV", + "CI", + "LB", + "HR", + "LS", + "CY", + "LR", + "CZ", + "LY", + "DK", + "LI", + "DJ", + "LT", + "EG", + "LU", + "GQ", + "MK", + "ER", + "MG", + "SC", + "MW", + "SL", + "ML", + "SK", + "MT", + "SI", + "MR", + "SO", + "MU", + "ZA", + "MD", + "SS", + "MC", + "ES", + "MN", + "SD", + "ME", + "SZ", + "MA", + "SE", + "MZ", + "CH", + "NA", + "SY", + "NL", + "TJ", + "NE", + "TZ", + "NG", + "TG", + "NO", + "TN", + "OM", + "TR", + "PS", + "TM", + "PL", + "UG", + "PT", + "UA", + "QA", + "AE", + "RO", + "GB", + "RU", + "UZ", + "RW", + "VA", + "SM", + "EH", + "ST", + "YE", + "SA", + "ZM", + "SN", + "ZW", + "RS", + "AI", + "GY", + "AG", + "HT", + "AR", + "HN", + "AW", + "JM", + "BS", + "MQ", + "BB", + "MX", + "BZ", + "MS", + "--", + "--", + "BO", + "NI", + "BR", + "PA", + "CA", + "PY", + "KY", + "PE", + "CL", + "--", + "CO", + "KN", + "CR", + "LC", + "CU", + "PM", + "DM", + "VC", + "DO", + "SR", + "SN", + "TT", + "TB", + "FK", + "GL", + "UY", + "GD", + "VE", + "GP", + "VG", + "GT", + "AF", + "KR", + "LA", + "AU", + "MO", + "AU", + "MY", + "AU", + "MV", + "AU", + "MH", + "AU", + "FM", + "AU", + "MM", + "AU", + "NR", + "AU", + "NP", + "BD", + "NZ", + "BT", + "PK", + "BN", + "PG", + "KH", + "PH", + "CN", + "WS", + "SG", + "SB", + "FJ", + "LK", + "HK", + "TW", + "IN", + "TH", + "ID", + "TO", + "IR", + "VU", + "JP", + "VN", + "KI", + "KP", + "--" +] + +// RDS ECC Lookup Tables - Converted from C to JavaScript + +const rdsEccA0A6Lut = [ + // A0 + [ + "USA/VI/PR", "USA/VI/PR", "USA/VI/PR", "USA/VI/PR", "USA/VI/PR", + "USA/VI/PR", "USA/VI/PR", "USA/VI/PR", "USA/VI/PR", "USA/VI/PR", + "USA/VI/PR", null, "USA/VI/PR", "USA/VI/PR", null + ], + // A1 + [ + null, null, null, null, null, + null, null, null, null, null, + "Canada", "Canada", "Canada", "Canada", "Greenland" + ], + // A2 + [ + "Anguilla", "Antigua and Barbuda", "Brazil/Equator", "Falkland Islands", "Barbados", + "Belize", "Cayman Islands", "Costa Rica", "Cuba", "Argentina", + "Brazil", "Brazil/Bermuda", "Brazil/AN", "Guadeloupe", "Bahamas" + ], + // A3 + [ + "Bolivia", "Colombia", "Jamaica", "Martinique", null, + "Paraguay", "Nicaragua", null, "Panama", "Dominica", + "Dominican Republic", "Chile", "Grenada", "Turks and Caicos islands", "Guyana" + ], + // A4 + [ + "Guatemala", "Honduras", "Aruba", null, "Montserrat", + "Trinidad and Tobago", "Peru", "Suriname", "Uruguay", "St. Kitts", + "St. Lucia", "El Salvador", "Haiti", "Venezuela", "Virgin Islands" + ], + // A5 + [ + null, null, null, null, null, + null, null, null, null, null, + "Mexico", "St. Vincent", "Mexico", "Mexico", "Mexico" + ], + // A6 + [ + null, null, null, null, null, + null, null, null, null, null, + null, null, null, null, "St. Pierre and Miquelon" + ] +]; + +const rdsEccD0D4Lut = [ + // D0 + [ + "Cameroon", "Central African Republic", "Djiboutia", "Madagascar", "Mali", + "Angola", "Equatorial Guinea", "Gabon", "Guinea", "South Africa", + "Burkina Faso", "Republic of Congo", "Togo", "Benin", "Malawi" + ], + // D1 + [ + "Namibia", "Liberia", "Ghana", "Mauritania", "Sao Tome and Principe", + "Cape Verde", "Senegal", "Gambia", "Burundi", "Ascension Island", + "Botswana", "Comoros", "Tanzania", "Ethiopia", "Nigeria" + ], + // D2 + [ + "Sierra Leone", "Zimbabwe", "Mozambique", "Uganda", "Swaziland", + "Kenya", "Somalia", "Niger", "Chad", "Guinea-Bissau", + "DR Congo", "Cote d'Ivoire", null, "Zambia", "Eritrea" + ], + // D3 + [ + null, null, "Western Sahara", "Cabinda", "Rwanda", + "Lesotho", null, "Seychelles", null, "Mauritius", + null, "Sudan", null, null, null + ], + // D4 + [ + null, null, null, null, null, + null, null, null, null, "South Sudan", + null, null, null, null, null + ] +]; + +const rdsEccE0E5Lut = [ + // E0 + [ + "Germany", "Algeria", "Andorra", "Israel", "Italy", + "Belgium", "Russia", "Palestine", "Albania", "Austria", + "Hungary", "Malta", "Germany", null, "Egypt" + ], + // E1 + [ + "Greece", "Cyprus", "San Marino", "Switzerland", "Jordan", + "Finland", "Luxembourg", "Bulgaria", "Denmark", "Gibraltar", + "Iraq", "United Kingdom", "Libya", "Romania", "France" + ], + // E2 + [ + "Morocco", "Czechia", "Poland", "Vatican", "Slovakia", + "Syria", "Tunisia", null, "Liechtenstein", "Iceland", + "Monaco", "Lithuania", "Serbia", "Spain", "Norway" + ], + // E3 + [ + "Montenegro", "Ireland", "Turkey", null, "Tajikistan", + null, null, "Netherlands", "Latvia", "Lebanon", + "Azerbaijan", "Croatia", "Kazakhstan", "Sweden", "Belarus" + ], + // E4 + [ + "Moldova", "Estonia", "Macedonia", null, null, + "Ukraine", "Kosovo", "Portugal", "Slovenia", "Armenia", + "Uzbekistan", "Georgia", null, "Turkmenistan", "Bosnia Herzegovina" + ], + // E5 + [ + null, null, "Kyrgyzstan", null, null, + null, null, null, null, null, + null, null, null, null, null + ] +]; + +const rdsEccF0F4Lut = [ + // F0 + [ + "Australia Capital Territory", "Australia New South Wales", "Australia Victoria", "Australia Queensland", "Australia South Australia", + "Australia Western Australia", "Australia Tasmania", "Australia Northern Territory", "Saudi Arabia", "Afghanistan", + "Myanmar", "China", "North Korea", "Bahrein", "Malaysia" + ], + // F1 + [ + "Kiribati", "Bhutan", "Bangladesh", "Pakistan", "Fiji", + "Oman", "Nauru", "Iran", "New Zealand", "Solomon Islands", + "Brunei Darussalam", "Sri Lanka", "Taiwan", "South Korea", "Hong Kong" + ], + // F2 + [ + "Kuwait", "Qatar", "Cambodia", "Samoa", "India", + "Macao", "Vietnam", "Philippines", "Japan", "Singapore", + "Maldives", "Indonesia", "United Arab Emirates", "Nepal", "Vanuatu" + ], + // F3 + [ + "Laos", "Thailand", "Tonga", null, null, + null, null, "China", "Papua New Guinea", null, + "Yemen", null, null, "Micronesia", "Mongolia" + ], + // F4 + [ + null, null, null, null, null, + null, null, null, "China", null, + "Marshall Islands", null, null, null, null + ] +]; + +function rdsEccLookup(pi, ecc) { + const PI_UNKNOWN = -1; + + const piCountry = (pi >> 12) & 0xF; + + if (pi === PI_UNKNOWN || piCountry === 0) { + return "" + } + + const piId = piCountry - 1; + + const eccRanges = [ + { min: 0xA0, max: 0xA6, lut: rdsEccA0A6Lut }, + { min: 0xD0, max: 0xD4, lut: rdsEccD0D4Lut }, + { min: 0xE0, max: 0xE5, lut: rdsEccE0E5Lut }, + { min: 0xF0, max: 0xF4, lut: rdsEccF0F4Lut } + ]; + + // Check each range + for (const range of eccRanges) { + if (ecc >= range.min && ecc <= range.max) { + const eccId = ecc - range.min; + return range.lut[eccId][piId]; + } + } + + return "" +} + +module.exports = { + rdsEccLookup, + iso, + countries +}; \ No newline at end of file diff --git a/server/server_config.js b/server/server_config.js index 62466bc..203a5ee 100644 --- a/server/server_config.js +++ b/server/server_config.js @@ -94,7 +94,7 @@ let serverConfig = { enabled: false, username: "", token: "", - region: "eu", + region: "pldx", lowLatencyMode: false, subdomain: "", httpName: "", diff --git a/server/stream/checkFFmpeg.js b/server/stream/checkFFmpeg.js index 96d385e..601b3c9 100644 --- a/server/stream/checkFFmpeg.js +++ b/server/stream/checkFFmpeg.js @@ -11,11 +11,8 @@ function checkFFmpeg() { }); checkFFmpegProcess.on('exit', (code) => { - if (code === 0) { - resolve('ffmpeg'); - } else { - resolve(require('ffmpeg-static')); - } + if (code === 0) resolve('ffmpeg'); + else resolve(require('ffmpeg-static')); }); }); } diff --git a/server/stream/parser.js b/server/stream/parser.js index d0142bc..fa3d7b2 100644 --- a/server/stream/parser.js +++ b/server/stream/parser.js @@ -74,9 +74,7 @@ function parseAudioDevice(options, callback) { if (platform === 'win32' && line.search(/Alternative\sname/) > -1) { const lastDevice = deviceList[deviceList.length - 1]; const alt = line.match(alternativeName); - if (lastDevice && alt) { - lastDevice.alternativeName = alt[1]; - } + if (lastDevice && alt) lastDevice.alternativeName = alt[1]; return; } @@ -107,11 +105,8 @@ function parseAudioDevice(options, callback) { } }; - if (callbackExists) { - execute(); - } else { - return new Promise(execute); - } + if (callbackExists) execute(); + else return new Promise(execute); } module.exports = { parseAudioDevice }; \ No newline at end of file diff --git a/server/tunnel.js b/server/tunnel.js index 74f00b6..c7f0442 100644 --- a/server/tunnel.js +++ b/server/tunnel.js @@ -25,9 +25,7 @@ async function connect() { try { const res = await fetch('https://fmtuner.org/binaries/' + frpcFileName); - if (res.status === 404) { - throw new Error('404 error'); - } + if (res.status === 404) throw new Error('404 error'); const stream = fs2.createWriteStream(frpcPath); await finished(Readable.fromWeb(res.body).pipe(stream)); } catch (err) { @@ -41,7 +39,7 @@ async function connect() { } const cfg = ejs.render(frpcConfigTemplate, { cfg: serverConfig.tunnel, - host: serverConfig.tunnel.community.enabled ? serverConfig.tunnel.community.host : serverConfig.tunnel.region + ".fmtuner.org", + host: serverConfig.tunnel.community.enabled ? serverConfig.tunnel.community.host : ((serverConfig.tunnel.region == "pldx") ? "pldx.duckdns.org" : (serverConfig.tunnel.region + ".fmtuner.org")), server: { port: serverConfig.webserver.webserverPort } @@ -62,15 +60,10 @@ async function connect() { if (line.includes('connect to server error')) { const reason = line.substring(line.indexOf(': ')+2); logError('Failed to connect to tunnel, reason: ' + reason); - } else if (line.includes('invalid user or token')) { - logError('Failed to connect to tunnel, reason: invalid user or token'); - } else if (line.includes('start proxy success')) { - logInfo('Tunnel established successfully'); - } else if (line.includes('login to server success')) { - logInfo('Connection to tunnel server was successful'); - } else { - logDebug('Tunnel log:', line); - } + } else if (line.includes('invalid user or token')) logError('Failed to connect to tunnel, reason: invalid user or token'); + else if (line.includes('start proxy success')) logInfo('Tunnel established successfully'); + else if (line.includes('login to server success')) logInfo('Connection to tunnel server was successful'); + else logDebug('Tunnel log:', line); }); child.on('error', (err) => { diff --git a/web/js/setup.js b/web/js/setup.js index 231106d..16d737d 100644 --- a/web/js/setup.js +++ b/web/js/setup.js @@ -116,11 +116,8 @@ function initBanlist() { data: { ip: ipAddress, reason: reason }, success: function(response) { // Refresh the page if the request was successful - if (response.success) { - location.reload(); - } else { - console.error('Failed to add to banlist'); - } + if (response.success) location.reload(); + else console.error('Failed to add to banlist'); }, error: function() { console.error('Error occurred during the request'); diff --git a/web/setup.ejs b/web/setup.ejs index dc7a5e0..9ef2c04 100644 --- a/web/setup.ejs +++ b/web/setup.ejs @@ -699,7 +699,8 @@

    Tunnel

    When you become an FMDX.org supporter, you can host your webserver without the need of a public IP address & port forwarding.
    - When you become a supporter, you can message the Founders on Discord for your login details.

    + When you become a supporter, you can message the Founders on Discord for your login details.


    +

    You can also get an tunnel from kuba201 discord, one of the contributors of this version of the application.

    Main tunnel settings

    <%- include('_components', {component: 'checkbox', cssClass: 'm-right-10', label: 'Enable tunnel', id: 'tunnel-enabled'}) %>
    <%- include('_components', { component: 'dropdown', id: 'tunnel-server', inputId: 'tunnel-serverSelect', label: 'Official server region', cssClass: '', placeholder: 'Europe', @@ -707,6 +708,7 @@ { value: 'eu', label: 'Europe' }, { value: 'us', label: 'Americas' }, { value: 'sg', label: 'Asia & Oceania' }, + { value: 'pldx', label: 'Poland (k201)' }, ] }) %> <%- include('_components', {component: 'text', cssClass: 'w-150 br-15', placeholder: '', label: 'Username', id: 'tunnel-username'}) %>