From 6342f51d22362bb401fbc4123ec9b1399a9bade5 Mon Sep 17 00:00:00 2001 From: zefie Date: Sun, 26 Apr 2026 19:16:18 -0400 Subject: [PATCH] move stuff around --- zefie_wtvp_minisrv/app.js | 71 ++++++++++--------- .../includes/ServiceVault/wtv-1800/noflash.js | 8 +-- .../ServiceVault/wtv-1800/preregister.js | 14 ++-- .../wtv-head-waiter/login-stage-two.js | 18 ++--- .../ServiceVault/wtv-head-waiter/login.js | 2 +- .../ServiceVault/wtv-head-waiter/relogin.js | 2 +- .../wtv-register/FinishRegistration.js | 6 +- .../ServiceVault/wtv-tricks/go-offline.js | 2 +- .../includes/classes/WTVShared.js | 15 +++- 9 files changed, 79 insertions(+), 59 deletions(-) diff --git a/zefie_wtvp_minisrv/app.js b/zefie_wtvp_minisrv/app.js index 37ea605a..94b69e38 100644 --- a/zefie_wtvp_minisrv/app.js +++ b/zefie_wtvp_minisrv/app.js @@ -8,7 +8,7 @@ const wtvshared = new WTVShared(); // creates minisrv_config const fs = wtvshared.fs; const zlib = wtvshared.zlib; const process = wtvshared.process; -const util = require('util'); +const util = wtvshared.util; const nunjucks = require('nunjucks'); const {serialize, unserialize} = require('php-serialize'); const {spawn} = require('child_process'); @@ -41,7 +41,9 @@ const wtvmime = new WTVMime(minisrv_config); process .on('SIGTERM', shutdown('SIGTERM')) .on('SIGINT', shutdown('SIGINT')) - .on('uncaughtException', (e => { console.error(e); })); + .on('uncaughtException', function (err) { + console.error((err && err.stack) ? err.stack : err); + }); function shutdown(signal = 'SIGTERM') { @@ -196,10 +198,10 @@ let socket_sessions = []; const ports = []; const pc_ports = []; -function moveArrayKey(array, from, to) { - array.splice(to, 0, array.splice(from, 1)[0]); - return array; -}; +function getServiceString(service_name, overrides = {}) { + wtvshared.getServiceString(service_name, overrides); +} + // Deprecation warnings configuration const deprecationWarnings = { @@ -211,11 +213,17 @@ const deprecationWarnings = { message: "session_data.hasCap() is deprecated and will be removed", removeVersion: "0.9.80", replacement: "Use session_data.capabilities.get() instead" + }, + { + pattern: /(? 99) { if (minisrv_config.config.shenanigans) console.log(" * WARNING: Shenanigans level", minisrv_config.config.shenanigans, "enabled"); else console.log(" * Shenanigans disabled"); -// PNG -if (minisrv_config.config.decode_png) console.log(" * WebTV Unsupported images will be processed and converted for WebTV clients"); +// WTVImage +if (minisrv_config.config.image_decoder.enabled) console.log(" * WebTV Unsupported images will be processed and converted for WebTV clients"); else console.log(" * WebTV Unsupported images will not be processed, and sent to client as-is"); - - -process.on('uncaughtException', function (err) { - console.error((err && err.stack) ? err.stack : err); -}); - ports.sort(); pc_ports.sort(); diff --git a/zefie_wtvp_minisrv/includes/ServiceVault/wtv-1800/noflash.js b/zefie_wtvp_minisrv/includes/ServiceVault/wtv-1800/noflash.js index cc88f3a8..3e273136 100644 --- a/zefie_wtvp_minisrv/includes/ServiceVault/wtv-1800/noflash.js +++ b/zefie_wtvp_minisrv/includes/ServiceVault/wtv-1800/noflash.js @@ -17,10 +17,10 @@ minisrv-no-mail-count: true wtv-initial-key: ` + wtvsec_login.challenge_key.toString(CryptoJS.enc.Base64) + ` Content-Type: text/tellyscript wtv-service: reset -${getServiceString('wtv-1800')} -${getServiceString('wtv-head-waiter')} -${getServiceString('wtv-star', { "no_star_word": true })} -${getServiceString('wtv-flashrom')} +${wtvshared.getServiceString('wtv-1800')} +${wtvshared.getServiceString('wtv-head-waiter')} +${wtvshared.getServiceString('wtv-star', { "no_star_word": true })} +${wtvshared.getServiceString('wtv-flashrom')} wtv-boot-url: wtv-head-waiter:/login? wtv-visit: wtv-head-waiter:/login? wtv-client-time-zone: GMT -0000 diff --git a/zefie_wtvp_minisrv/includes/ServiceVault/wtv-1800/preregister.js b/zefie_wtvp_minisrv/includes/ServiceVault/wtv-1800/preregister.js index 0e28670b..2d4f4dea 100644 --- a/zefie_wtvp_minisrv/includes/ServiceVault/wtv-1800/preregister.js +++ b/zefie_wtvp_minisrv/includes/ServiceVault/wtv-1800/preregister.js @@ -166,15 +166,15 @@ if (session_data.data_store.wtvsec_login) { headers += "wtv-initial-key: " + session_data.data_store.wtvsec_login.challenge_key.toString(CryptoJS.enc.Base64) + "\n"; headers += "Content-Type: " + prereg_contype + "\n"; if (!request_headers.query.reconnect) headers += "wtv-service: reset\n"; - if (!bf0app_update) headers += getServiceString('wtv-1800') + "\n"; + if (!bf0app_update) headers += wtvshared.getServiceString('wtv-1800') + "\n"; - if (bf0app_update) headers += getServiceString('wtv-head-waiter', { "flags": "0x00000001" }) + "\n"; - else headers += getServiceString('wtv-head-waiter') + "\n"; + if (bf0app_update) headers += wtvshared.getServiceString('wtv-head-waiter', { "flags": "0x00000001" }) + "\n"; + else headers += wtvshared.getServiceString('wtv-head-waiter') + "\n"; - if (bf0app_update) headers += getServiceString('wtv-star', { "no_star_word": true }) + "\n"; - else headers += getServiceString('wtv-star') + "\n"; - if (request_headers.query.reconnect && !session_data.isRegistered() && !session_data.lockdown) headers += getServiceString('wtv-register') + "\n"; - if (!session_data.lockdown) headers += getServiceString('wtv-flashrom') + "\n"; + if (bf0app_update) headers += wtvshared.getServiceString('wtv-star', { "no_star_word": true }) + "\n"; + else headers += wtvshared.getServiceString('wtv-star') + "\n"; + if (request_headers.query.reconnect && !session_data.isRegistered() && !session_data.lockdown) headers += wtvshared.getServiceString('wtv-register') + "\n"; + if (!session_data.lockdown) headers += wtvshared.getServiceString('wtv-flashrom') + "\n"; if (bf0app_update) headers += "wtv-boot-url: " + gourl + "\n"; else { headers += "wtv-boot-url: wtv-head-waiter:/login?relogin=true"; diff --git a/zefie_wtvp_minisrv/includes/ServiceVault/wtv-head-waiter/login-stage-two.js b/zefie_wtvp_minisrv/includes/ServiceVault/wtv-head-waiter/login-stage-two.js index 60b5e26e..6cb79247 100644 --- a/zefie_wtvp_minisrv/includes/ServiceVault/wtv-head-waiter/login-stage-two.js +++ b/zefie_wtvp_minisrv/includes/ServiceVault/wtv-head-waiter/login-stage-two.js @@ -14,9 +14,9 @@ if (gourl) { // fake logged in for reg session_data.setUserLoggedIn(true); headers += `wtv-encrypted: ${(request_headers['wtv-encrypted']) ? wtvshared.parseBool(request_headers['wtv-encrypted']) : true} -${getServiceString('wtv-register')} -${getServiceString('wtv-head-waiter')} -${getServiceString('wtv-star')} +${wtvshared.getServiceString('wtv-register')} +${wtvshared.getServiceString('wtv-head-waiter')} +${wtvshared.getServiceString('wtv-star')} wtv-boot-url: wtv-head-waiter:/relogin? ` } @@ -102,7 +102,7 @@ wtv-expire-all: client:closeallpanels if (!limitedLogin && !limitedLoginRegistered) { session_data.assignMailStore(); headers += "wtv-service: reset\n"; - headers += getServiceString('all', { "exceptions": ["wtv-register"] }); + headers += wtvshared.getServiceString('all', { "exceptions": ["wtv-register"] }); if (offline_user_list) headers += "wtv-offline-user-list: " + offline_user_list + "\n"; headers += `wtv-messenger-authorized: ${messenger_authorized} wtv-messenger-enable: ${messenger_enabled} @@ -113,11 +113,11 @@ wtv-messenger-login-url: wtv-passport:/messengerlogin `; } else { /* - headers += getServiceString('wtv-1800') + "\n"; - headers += getServiceString('wtv-head-waiter') + "\n"; - headers += getServiceString('wtv-log') + "\n"; - headers += getServiceString('wtv-star') + "\n"; - headers += getServiceString('wtv-flashrom') + "\n"; + headers += wtvshared.getServiceString('wtv-1800') + "\n"; + headers += wtvshared.getServiceString('wtv-head-waiter') + "\n"; + headers += wtvshared.getServiceString('wtv-log') + "\n"; + headers += wtvshared.getServiceString('wtv-star') + "\n"; + headers += wtvshared.getServiceString('wtv-flashrom') + "\n"; */ headers += `wtv-messenger-authorized: 0 wtv-messenger-enable: 0 diff --git a/zefie_wtvp_minisrv/includes/ServiceVault/wtv-head-waiter/login.js b/zefie_wtvp_minisrv/includes/ServiceVault/wtv-head-waiter/login.js index 034ea042..cdc35fa9 100644 --- a/zefie_wtvp_minisrv/includes/ServiceVault/wtv-head-waiter/login.js +++ b/zefie_wtvp_minisrv/includes/ServiceVault/wtv-head-waiter/login.js @@ -48,7 +48,7 @@ if (!send_to_relogin) { Connection: Keep-Alive Expires: Wed, 09 Oct 1991 22:00:00 GMT wtv-expire-all: wtv-head-waiter: -`+ getServiceString('wtv-log') + ` +`+ wtvshared.getServiceString('wtv-log') + ` wtv-log-url: wtv-log:/log`; if (challenge_header !== "") headers += "\n" + challenge_header; headers += ` diff --git a/zefie_wtvp_minisrv/includes/ServiceVault/wtv-head-waiter/relogin.js b/zefie_wtvp_minisrv/includes/ServiceVault/wtv-head-waiter/relogin.js index 5a2964a3..57d6290a 100644 --- a/zefie_wtvp_minisrv/includes/ServiceVault/wtv-head-waiter/relogin.js +++ b/zefie_wtvp_minisrv/includes/ServiceVault/wtv-head-waiter/relogin.js @@ -12,7 +12,7 @@ Expires: Wed, 09 Oct 1991 22:00:00 GMT wtv-expire-all: wtv-head-waiter: wtv-expire-all: wtv-1800: wtv-service: reset -${getServiceString('wtv-1800')} +${wtvshared.getServiceString('wtv-1800')} wtv-visit: ${gourl} Content-type: text/html`; data = ''; \ No newline at end of file diff --git a/zefie_wtvp_minisrv/includes/ServiceVault/wtv-register/FinishRegistration.js b/zefie_wtvp_minisrv/includes/ServiceVault/wtv-register/FinishRegistration.js index f57a1ebb..46926d8e 100644 --- a/zefie_wtvp_minisrv/includes/ServiceVault/wtv-register/FinishRegistration.js +++ b/zefie_wtvp_minisrv/includes/ServiceVault/wtv-register/FinishRegistration.js @@ -7,9 +7,9 @@ wtv-noback-all: wtv-register: wtv-expire-all: wtv- wtv-ticket: ${session_data.data_store.wtvsec_login.ticket_b64} wtv-service: reset -${getServiceString('wtv-1800')} -${getServiceString('wtv-head-waiter')} -${getServiceString('wtv-star')} +${wtvshared.getServiceString('wtv-1800')} +${wtvshared.getServiceString('wtv-head-waiter')} +${wtvshared.getServiceString('wtv-star')} wtv-relogin-url: wtv-1800:/preregister?relogin=true wtv-reconnect-url: wtv-1800:/preregister?reconnect=true wtv-boot-url: wtv-1800:/preregister?relogin=true diff --git a/zefie_wtvp_minisrv/includes/ServiceVault/wtv-tricks/go-offline.js b/zefie_wtvp_minisrv/includes/ServiceVault/wtv-tricks/go-offline.js index a9ea76ad..0fc939c0 100644 --- a/zefie_wtvp_minisrv/includes/ServiceVault/wtv-tricks/go-offline.js +++ b/zefie_wtvp_minisrv/includes/ServiceVault/wtv-tricks/go-offline.js @@ -5,7 +5,7 @@ wtv-noback-all: wtv- wtv-expire-all: wtv- Content-type: text/html wtv-service: reset -`+getServiceString('wtv-1800'); +`+wtvshared.getServiceString('wtv-1800'); // HackTV Homepage is default diff --git a/zefie_wtvp_minisrv/includes/classes/WTVShared.js b/zefie_wtvp_minisrv/includes/classes/WTVShared.js index 5c579bf9..f48cc99d 100644 --- a/zefie_wtvp_minisrv/includes/classes/WTVShared.js +++ b/zefie_wtvp_minisrv/includes/classes/WTVShared.js @@ -16,7 +16,7 @@ class WTVShared { sanitizeHtml = require('sanitize-html'); iconv = require('iconv-lite'); parentDirectory = process.cwd() - extend = require('util')._extend; + util = require('util'); debug = require('debug')('WTVShared') process = require('process'); shenanigans = null; @@ -139,6 +139,19 @@ class WTVShared { return false; } + /** + * Moves an array element from one index to another + * @param {Array} array The array to modify + * @param {number} from The index of the element to move + * @param {number} to The index to move the element to + * @return {Array} The modified array with the element moved + * @notice This function modifies the original array and also returns it for convenience + */ + moveArrayKey(array, from, to) { + array.splice(to, 0, array.splice(from, 1)[0]); + return array; + }; + /** * Converts a byte array to a 32-bit unsigned integer (big-endian) * @param {Uint8Array} bytes The byte array