fix/optimize wtv-head-waiter, wtv-home, wtv-log

This commit is contained in:
zefie
2025-08-12 18:54:13 -04:00
parent 01f698c9b3
commit d160a5138c
17 changed files with 94 additions and 99 deletions

View File

@@ -1,17 +1,15 @@
var minisrv_service_file = true;
const minisrv_service_file = true;
var challenge_response, challenge_header = '';
var gourl;
var wtvsec_login = null;
let challenge_response, gourl, wtvsec_login;
hasPendingTransfer = session_data.hasPendingTransfer()
const hasPendingTransfer = session_data.hasPendingTransfer()
if (hasPendingTransfer) {
if (hasPendingTransfer.type == "target") {
var xferSession = new WTVClientSessionData(minisrv_config, hasPendingTransfer.ssid);
const xferSession = new WTVClientSessionData(minisrv_config, hasPendingTransfer.ssid);
xferSession.user_id = 0
var primary_username = xferSession.listPrimaryAccountUsers()['subscriber']['subscriber_username'];
var transferPendingDest = new clientShowAlert({
const primary_username = xferSession.listPrimaryAccountUsers()['subscriber']['subscriber_username'];
const transferPendingDest = new clientShowAlert({
'image': minisrv_config.config.service_logo,
'message': "There is a pending transfer of the account <b>" + primary_username + "</b>, would you like to complete the transfer, or cancel it?",
'buttonlabel1': "Complete Transfer",
@@ -20,11 +18,11 @@ if (hasPendingTransfer) {
'buttonaction2': "wtv-head-waiter:/cancel-account-transfer",
'noback': true,
}).getURL();
var errpage = wtvshared.doRedirect(transferPendingDest);
var headers = errpage[0];
var data = errpage[1];
const errpage = wtvshared.doRedirect(transferPendingDest);
headers = errpage[0];
data = errpage[1];
} else if (hasPendingTransfer.type == "source") {
var transferPendingSrc = new clientShowAlert({
const transferPendingSrc = new clientShowAlert({
'image': minisrv_config.config.service_logo,
'message': "There is a pending transfer of this account to <b>" + hasPendingTransfer.ssid + "</b>. In order to use this box, you need to complete or cancel the transfer.",
'buttonlabel1': "Power Off",
@@ -33,9 +31,9 @@ if (hasPendingTransfer) {
'buttonaction2': "wtv-head-waiter:/cancel-account-transfer",
'noback': true,
}).getURL();
var errpage = wtvshared.doRedirect(transferPendingSrc);
var headers = errpage[0];
var data = errpage[1];
const errpage = wtvshared.doRedirect(transferPendingSrc);
headers = errpage[0];
data = errpage[1];
} else {
console.log(hasPendingTransfer);
}
@@ -46,8 +44,8 @@ if (hasPendingTransfer) {
Location: client:gototvhome
wtv-visit: client:hangupphone`
} else {
var user_id = (request_headers.query.user_id) ? request_headers.query.user_id : session_data.user_id;
const user_id = (request_headers.query.user_id) ? request_headers.query.user_id : session_data.user_id;
let limitedLoginRegistered, client_challenge_response;
if (socket.ssid !== null && user_id !== null) session_data.switchUserID(user_id);
if (socket.ssid !== null && !session_data.get("wtvsec_login")) {
@@ -62,7 +60,7 @@ wtv-visit: client:hangupphone`
if (socket.ssid !== null) {
if (wtvsec_login.ticket_b64 == null) {
challenge_response = wtvsec_login.challenge_response;
var client_challenge_response = request_headers["wtv-challenge-response"] || null;
client_challenge_response = request_headers["wtv-challenge-response"] || null;
if (challenge_response && client_challenge_response) {
if (challenge_response.toString(CryptoJS.enc.Base64) == client_challenge_response) {
console.log(" * wtv-challenge-response success for " + wtvshared.filterSSID(socket.ssid));
@@ -107,8 +105,8 @@ minisrv-no-mail-count: true
gourl = "wtv-head-waiter:/choose-user?"
} else {
if (!session_data.getUserPasswordEnabled() && request_headers.query.user_login) session_data.setUserLoggedIn(true);
var limitedLogin = (!session_data.lockdown && (!session_data.get('password_valid') && session_data.getUserPasswordEnabled()));
var limitedLoginRegistered = (limitedLogin && session_data.isRegistered());
const limitedLogin = (!session_data.lockdown && (!session_data.get('password_valid') && session_data.getUserPasswordEnabled()));
limitedLoginRegistered = (limitedLogin && session_data.isRegistered());
}
headers = `200 OK
wtv-connection-close: true

View File

@@ -1,4 +1,4 @@
var minisrv_service_file = true;
const minisrv_service_file = true;
// remove restrictions once this page is shown, since the user will be 'trapped' anyway
session_data.disableLockdown();

View File

@@ -1,7 +1,7 @@
var minisrv_service_file = true;
const minisrv_service_file = true;
var ssid = session_data.cancelPendingTransfer();
var transferCanceled = new clientShowAlert({
const ssid = session_data.cancelPendingTransfer();
const transferCanceled = new clientShowAlert({
'image': minisrv_config.config.service_logo,
'message': "The transfer of this account to <b>" + ssid + "</b> has been cancelled.",
'buttonlabel1': "Okay",

View File

@@ -1,4 +1,4 @@
var minisrv_service_file = true;
const minisrv_service_file = true;
if (socket.ssid !== null) {
session_data.switchUserID(0);
@@ -77,27 +77,28 @@ Choose your name
<tr><td absheight=2>
<tr>`;
var accounts = session_data.listPrimaryAccountUsers();
var accounts_listed = 0;
const accounts = session_data.listPrimaryAccountUsers();
let accounts_listed = 0;
for (const [key, value] of Object.entries(accounts)) {
let user_id;
data += "<td absheight=37><td valign=middle abswidth=50% maxlines=1>";
if (key == "subscriber") var user_id = 0
else var user_id = key.replace("user", '');
if (key == "subscriber") user_id = 0;
else user_id = key.replace("user", '');
data += `<a href=/ValidateLogin?user_id=${user_id}&user_login=true nocancel>`;
if (key == "subscriber") data += `<font size=+1><b>${value['subscriber_username']}</b></font></a>`;
else data += `<font size=+1>${value['subscriber_username']}</font>`
data += "<td width=15><td nowrap> <font color=42BD52>";
var userSession = new WTVClientSessionData(minisrv_config, socket.ssid);
const userSession = new WTVClientSessionData(minisrv_config, socket.ssid);
userSession.user_id = user_id;
var mailcount = 0;
let mailcount = 0;
if (userSession.mailstore.mailstoreExists()) {
if (userSession.mailstore.mailboxExists(0)) {
mailcount = userSession.mailstore.countUnreadMessages(0);
}
}
var mcnumber = (mailcount >= 100) ? "<b>99+</b>" : mailcount;
const mcnumber = (mailcount >= 100) ? "<b>99+</b>" : mailcount;
data += `<b>${mcnumber} ${(mcnumber > 0) ? '<img src="/images/signin_new_mail.gif" width="25" height="20">' : '<img src="/images/signin_no_mail.gif" width="25" height="19">'}`;
data += `</font>
<tr>

View File

@@ -1,8 +1,9 @@
var minisrv_service_file = true;
const minisrv_service_file = true;
var result = session_data.finalizePendingTransfer();
const result = session_data.finalizePendingTransfer();
let transferCanceled;
if (result) {
var transferCanceled = new clientShowAlert({
transferCanceled = new clientShowAlert({
'image': minisrv_config.config.service_logo,
'message': "The transfer is complete.",
'buttonlabel1': "Login",
@@ -10,7 +11,7 @@ if (result) {
'noback': true,
}).getURL();
} else {
var transferCanceled = new clientShowAlert({
transferCanceled = new clientShowAlert({
'image': minisrv_config.config.service_logo,
'message': "The transfer failed.",
'buttonlabel1': "Try to Login",

View File

@@ -1,4 +1,4 @@
header = `200 OK
headers = `200 OK
Content-type: wtv/ssl-certs`
const wtvssl = new WTVSSL();

View File

@@ -1,12 +1,9 @@
var minisrv_service_file = true;
const minisrv_service_file = true;
var challenge_response, challenge_header = '';
var gourl;
if (socket.ssid !== null) {
if (socket.ssid && session_data) {
if (request_headers["wtv-ticket"]) {
if (request_headers["wtv-ticket"].length > 8) {
DecodeTicket(request_headers["wtv-ticket"]);
session_data.data_store.wtvsec_login.DecodeTicket(request_headers["wtv-ticket"]);
socket_sessions[socket.id].wtvsec.ticket_b64 = request_headers["wtv-ticket"];
//socket_sessions[socket.id].secure == true;
}

View File

@@ -1,10 +1,10 @@
var minisrv_service_file = true;
var gourl = null;
const minisrv_service_file = true;
let gourl, userid, nickname, human_name, messenger_enabled, messenger_authorized, messenger_email, timezone;
var bootrom = parseInt(session_data.get("wtv-client-bootrom-version"));
const bootrom = parseInt(session_data.get("wtv-client-bootrom-version"));
if (!session_data.isRegistered()) gourl = "wtv-register:/splash?";
var home_url = "wtv-home:/home?";
let home_url = "wtv-home:/home?";
if (gourl) {
headers = "200 OK\n";
@@ -28,39 +28,38 @@ else {
if (session_data.lockdown) {
home_url = minisrv_config.config.unauthorized_url;
} else if (!session_data.getSessionData("registered")) {
var errpage = wtvshared.doErrorPage(400);
const errpage = wtvshared.doErrorPage(400);
headers = errpage[0];
data = errpage[1];
} else {
var userid = session_data.getSessionData("subscriber_userid")
userid = session_data.getSessionData("subscriber_userid")
if (userid === null) {
userid = '1' + Math.floor(Math.random() * 1000000000000000000);
session_data.setSessionData("subscriber_userid", userid);
}
var nickname = session_data.getSessionData("subscriber_username");
var human_name = session_data.getSessionData("subscriber_name") || nickname;
var messenger_enabled = session_data.getSessionData("messenger_enabled") || 0;
var messenger_authorized = session_data.getSessionData("messenger_authorized") || 0;
var messenger_email = session_data.getSessionData("messenger_email");
var timezone = session_data.getSessionData("timezone") || "-0000";
var gourl = "wtv-home:/splash?";
nickname = session_data.getSessionData("subscriber_username");
human_name = session_data.getSessionData("subscriber_name") || nickname;
messenger_enabled = session_data.getSessionData("messenger_enabled") || 0;
messenger_authorized = session_data.getSessionData("messenger_authorized") || 0;
messenger_email = session_data.getSessionData("messenger_email");
timezone = session_data.getSessionData("timezone") || "-0000";
gourl = "wtv-home:/splash?";
}
var limitedLogin = session_data.lockdown;
var limitedLoginRegistered = (limitedLogin || (session_data.isRegistered() && !session_data.isUserLoggedIn()) && session_data.getUserPasswordEnabled());
const limitedLogin = session_data.lockdown;
const limitedLoginRegistered = (limitedLogin || (session_data.isRegistered() && !session_data.isUserLoggedIn()) && session_data.getUserPasswordEnabled());
if (!session_data.getUserPasswordEnabled()) session_data.setUserLoggedIn(true);
var offline_user_list = null;
let offline_user_list = null;
if (session_data.isRegistered()) {
// check for SMTP Password
if (session_data.getSessionData("subscriber_smtp_password") === null) {
session_data.setUserSMTPPassword(wtvshared.generatePassword(16));
}
if (session_data.user_id == 0) {
var accounts = session_data.listPrimaryAccountUsers();
var num_accounts = session_data.getNumberOfUserAccounts();
var offline_user_list_str = "<user-list>\n";
var i = 0;
const accounts = session_data.listPrimaryAccountUsers();
let offline_user_list_str = "<user-list>\n";
let i = 0;
Object.keys(accounts).forEach((k) => {
var account_display_name = (accounts[k].subscriber_name) ? accounts[k].subscriber_name : accounts[k].subscriber_username
const account_display_name = (accounts[k].subscriber_name) ? accounts[k].subscriber_name : accounts[k].subscriber_username
offline_user_list_str += "\t" + '<user userid="' + i + '" user-name="' + accounts[k].subscriber_username + '" first-name="' + account_display_name + '" last-name="" passsword="" mail-enabled=true />' + "\n";
i++;
});
@@ -82,7 +81,7 @@ wtv-expire-all: wtv-head-waiter:
`;
if (!limitedLogin && !limitedLoginRegistered) {
strf = strftime.timezone(timezone);
const strf = strftime.timezone(timezone);
headers += `wtv-country: US
wtv-client-time-zone: GMT -0000
wtv-client-time-dst-rule: GMT

View File

@@ -1,16 +1,16 @@
var minisrv_service_file = true;
const minisrv_service_file = true;
session_data.setUserLoggedIn(false);
var challenge_response, challenge_header = "";
let challenge_response, challenge_header = "";
if (socket.ssid !== null) session_data.switchUserID(0);
var gourl = "wtv-head-waiter:/ValidateLogin?";
let gourl = "wtv-head-waiter:/ValidateLogin?";
if (request_headers.query.relogin) gourl += "relogin=true";
else if (request_headers.query.reconnect) gourl += "reconnect=true";
else gourl += "initial_login=true"
var bootrom = parseInt(session_data.get("wtv-client-bootrom-version"));
const bootrom = parseInt(session_data.get("wtv-client-bootrom-version"));
var send_to_relogin = true;
let send_to_relogin = true;
if (session_data) {
if (request_headers["wtv-ticket"]) {
@@ -23,9 +23,9 @@ if (session_data) {
}
} else {
if (session_data.data_store.wtvsec_login) {
var client_challenge_response = request_headers["wtv-challenge-response"] || null;
const client_challenge_response = request_headers["wtv-challenge-response"] || null;
if (challenge_response && client_challenge_response) {
if (challenge_response.toString(CryptoJS.enc.Base64).substring(0, 85) == client_challenge_response.substring(0, 85)) {
if (challenge_response.toString(CryptoJS.enc.Base64).slice(0, 85) == client_challenge_response.slice(0, 85)) {
console.log(" * wtv-challenge-response success for " + socket.ssid);
session_data.data_store.wtvsec_login.PrepareTicket();
send_to_relogin = false;

View File

@@ -1,4 +1,4 @@
var minisrv_service_file = true;
const minisrv_service_file = true;
ssid_sessions[socket.ssid].delete("wtv-need-upgrade")
ssid_sessions[socket.ssid].delete("wtv-used-8675309")

View File

@@ -1,4 +1,4 @@
var minisrv_service_file = true;
const minisrv_service_file = true;
headers = `200 OK
Connection: Keep-Alive

View File

@@ -1,8 +1,8 @@
var minisrv_service_file = true;
const minisrv_service_file = true;
session_data.setUserLoggedIn(false);
var gourl = "wtv-1800:/preregister?";
let gourl = "wtv-1800:/preregister?";
if (request_headers.query.relogin) gourl += "relogin=true";
else if (request_headers.query.reconnect) gourl += "reconnect=true";

View File

@@ -1,4 +1,4 @@
var minisrv_service_file = true;
const minisrv_service_file = true;
headers = `200 OK
Connection: Keep-Alive

View File

@@ -1,4 +1,4 @@
var minisrv_service_file = true;
const minisrv_service_file = true;
headers = `200 OK
Connection: Keep-Alive

View File

@@ -1,13 +1,13 @@
var minisrv_service_file = true;
const minisrv_service_file = true;
headers =`200 OK
Connection: Keep-Alive
wtv-expire-all: wtv-home:/splash
Content-type: text/html`
var cryptstatus = (wtv_encrypted ? "Encrypted" : "Not Encrypted")
var comp_type = wtvmime.shouldWeCompress(socket.ssid,'text/html');
var compstatus = "uncompressed";
const cryptstatus = (socket.secure ? "Encrypted" : "Not Encrypted")
const comp_type = wtvmime.shouldWeCompress(socket.ssid,'text/html');
let compstatus = "uncompressed";
switch (comp_type) {
case 1:
compstatus = "wtv-lzpf";
@@ -17,11 +17,10 @@ switch (comp_type) {
break;
}
var wtv_system_sysconfig = session_data.get("wtv-system-sysconfig");
var wtv_client_bootrom_version = session_data.get("wtv-client-bootrom-version");
var wtv_system_chipversion_str = session_data.get("wtv-system-chipversion");
var notImplementedAlert = new clientShowAlert({
const wtv_system_sysconfig = session_data.get("wtv-system-sysconfig");
const wtv_client_bootrom_version = session_data.get("wtv-client-bootrom-version");
const wtv_system_chipversion_str = session_data.get("wtv-system-chipversion");
const notImplementedAlert = new clientShowAlert({
'image': minisrv_config.config.service_logo,
'message': "This feature is not available.",
'buttonlabel1': "Okay",
@@ -29,7 +28,7 @@ var notImplementedAlert = new clientShowAlert({
'noback': true,
}).getURL();
var ownMinisrv = new clientShowAlert({
const ownMinisrv = new clientShowAlert({
'image': minisrv_config.config.service_logo,
'message': "To run your own minisrv, please visit the following link on your PC:<br><br><strong>https://zef.pw/minisrv</strong>",
'buttonlabel1': "Okay",
@@ -37,7 +36,7 @@ var ownMinisrv = new clientShowAlert({
'noback': true,
}).getURL();
var supportZefieAlert = new clientShowAlert({
const supportZefieAlert = new clientShowAlert({
'image': minisrv_config.config.service_logo,
'message': "If you would like to support zefie or minisrv, please visit the following link on your PC:<br><br><font size=-1><strong>https://zef.pw/helpminisrv</strong></font>",
'buttonlabel1': "Okay",

View File

@@ -1,4 +1,4 @@
var minisrv_service_file = true;
const minisrv_service_file = true;
headers = `200 OK
Connection: Keep-Alive

View File

@@ -4,7 +4,7 @@ const minisrv_service_file = true;
request_is_async = true;
data = '';
const fullpath = __dirname + "/ServiceLogPost/" + Math.floor(new Date().getTime() / 1000) + "_" + request_headers.query.type;
let fullpath = __dirname + "/ServiceLogPost/" + Math.floor(new Date().getTime() / 1000) + "_" + request_headers.query.type;
if (socket.ssid) fullpath += "_" + socket.ssid;
fullpath += ".txt";
@@ -15,12 +15,12 @@ if (request_headers.post_data) {
Connection: Keep-Alive
Content-length: 0`;
var logdata_outstring = '';
let logdata_outstring = '';
Object.keys(request_headers.query).forEach(function (k) {
logdata_outstring += k + "=" + request_headers.query[k].toString() + "\r\n";
});
logdata_outstring += "\r\n";
var logdata_outstring_hex = Buffer.from(logdata_outstring, 'utf8').toString('hex');
let logdata_outstring_hex = Buffer.from(logdata_outstring, 'utf8').toString('hex');
logdata_outstring_hex += request_headers.post_data.toString(CryptoJS.enc.Hex);
if (minisrv_config.services[service_name].write_logs_to_disk) {
if (minisrv_config.services[service_name].dont_save_chat_logs && request_headers.query.type === 'chat') {
@@ -36,12 +36,12 @@ Content-length: 0`;
if (!minisrv_config.config.debug_flags.quiet) console.error("Error reading log directory:", err);
return;
}
var ssid = socket.ssid ? socket.ssid.toString() : '';
var count = files.filter(function (file) {
const ssid = socket.ssid ? socket.ssid.toString() : '';
const count = files.filter(function (file) {
return ssid && file.includes(ssid);
}).length;
if (count > minisrv_config.services[service_name].max_logs_per_ssid) {
var ssidFiles = files
const ssidFiles = files
.filter(function (file) {
return ssid && file.includes(ssid);
})
@@ -56,7 +56,7 @@ Content-length: 0`;
});
if (ssidFiles.length > 0) {
var oldestFile = ssidFiles[0].name;
const oldestFile = ssidFiles[0].name;
fs.unlink(__dirname + "/ServiceLogPost/" + oldestFile, function (err) {
if (err && !minisrv_config.config.debug_flags.quiet) {
console.error("Error deleting oldest log file:", err);
@@ -74,11 +74,11 @@ Content-length: 0`;
Connection: Keep-Alive
Content-length: 0`;
var logdata_outstring = '';
let logdata_outstring = '';
Object.keys(request_headers.query).forEach(function (k) {
logdata_outstring += k + "=" + request_headers.query[k].toString() + "\r\n";
});
var logdata_outstring_hex = Buffer.from(logdata_outstring, 'utf8').toString('hex');
const logdata_outstring_hex = Buffer.from(logdata_outstring, 'utf8').toString('hex');
if (minisrv_config.services[service_name].write_logs_to_disk) {
fs.writeFile(fullpath, logdata_outstring_hex, "Hex", function () {
if (!minisrv_config.config.debug_flags.quiet) console.log(" * Wrote GET log data from", wtvshared.filterSSID(socket.ssid), "for", socket.id);