diff --git a/zefie_wtvp_minisrv/app.js b/zefie_wtvp_minisrv/app.js index e2b15053..3ac7644a 100644 --- a/zefie_wtvp_minisrv/app.js +++ b/zefie_wtvp_minisrv/app.js @@ -1412,6 +1412,8 @@ async function sendToClient(socket, headers_obj, data = null) { var headers = ""; var content_length = 0; var eol = "\n"; + var timezone = "-0000"; + if (typeof (data) === 'undefined' || data === null) data = ''; if (typeof (headers_obj) === 'string') { // string to header object @@ -1435,6 +1437,7 @@ async function sendToClient(socket, headers_obj, data = null) { // logged in headers_obj['wtv-mail-count'] = ssid_sessions[socket.ssid].mailstore.countUnreadMessages(0); } + timezone = ssid_sessions[socket.ssid].getSessionData("timezone") || "-0000" } } } else { @@ -1483,8 +1486,15 @@ async function sendToClient(socket, headers_obj, data = null) { wtvshared.getFileExt(socket_sessions[socket.id].request_headers.service_file_path).toLowerCase() !== "php" || wtvshared.getFileExt(socket_sessions[socket.id].request_headers.service_file_path).toLowerCase() !== "cgi" || socket_sessions[socket.id].request_headers.raw_file === true) { - var last_modified = wtvshared.getFileLastModifiedUTCString(socket_sessions[socket.id].request_headers.service_file_path); - if (last_modified) headers_obj["Last-Modified"] = last_modified; + if (socket.res) { + var last_modified_formatted = wtvshared.getFileLastModifiedUTCString(socket_sessions[socket.id].request_headers.service_file_path); + } else { + var last_modified = wtvshared.getFileLastModifiedUTCObj(socket_sessions[socket.id].request_headers.service_file_path); + var strftime = require('strftime'); + var strf = strftime.timezone(timezone); + var last_modified_formatted = strf("%a, %d %b %Y %H:%M:%S", last_modified); + } + if (last_modified_formatted) headers_obj["Last-Modified"] = last_modified_formatted; } } } 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 1e97b3af..614951ee 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 @@ -34,7 +34,8 @@ else { var human_name = nickname; var userid = '1' + Math.floor(Math.random() * 1000000000000000000); var messenger_enabled = 0; - var messenger_authorized = 0; + var messenger_authorized = 0; + var timezone = "-0000"; if (request_headers.query.skip_splash) gourl = "wtv-home:/home?"; else gourl = "wtv-home:/splash?"; } else if (!session_data.getSessionData("registered")) { @@ -48,6 +49,7 @@ else { 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?"; } var limitedLogin = session_data.lockdown; @@ -87,10 +89,11 @@ wtv-expire-all: wtv-head-waiter: `; if (!limitedLogin && !limitedLoginRegistered) { - headers += `wtv-client-time-zone: GMT -0000 + + headers += `wtv-country: US +wtv-client-time-zone: GMT ${timezone} wtv-client-time-dst-rule: GMT -wtv-client-date: `+ strftime("%a, %d %b %Y %H:%M:%S", new Date(new Date().toUTCString())) + ` GMT -wtv-country: US +wtv-client-date: ${new Date().toUTCString()} wtv-language-header: en-US,en wtv-noback-all: wtv- wtv-transition-override: off diff --git a/zefie_wtvp_minisrv/includes/ServiceVault/wtv-setup/timezone.js b/zefie_wtvp_minisrv/includes/ServiceVault/wtv-setup/timezone.js new file mode 100644 index 00000000..6eb0575d --- /dev/null +++ b/zefie_wtvp_minisrv/includes/ServiceVault/wtv-setup/timezone.js @@ -0,0 +1,124 @@ +var minisrv_service_file = true; + +var timezone = "-0000"; +if (session_data.isRegistered()) { + timezone = session_data.getSessionData("timezone") || timezone; + if (request_headers.query.timezone) { + timezone = request_headers.query.timezone; + session_data.setSessionData("timezone", timezone); + } +} + +strf = strftime.timezone(timezone) + +headers = `200 OK +Connection: Keep-Alive +wtv-expire-all: wtv- +wtv-expire-all: http +wtv-client-time-zone: GMT -0000 +wtv-client-time-dst-rule: false +wtv-client-date: ${strf("%a, %d %b %Y %H:%M:%S", new Date(new Date().setUTCSeconds(new Date().getUTCSeconds())))} GMT +Content-Type: text/html` + + + +html = ` + + +Set Timezone + + + + + + +
+ + +
+ + + +
+ +
+
+
+ +
+ +
+
+ +
+
+
+ +
+
+
+ + + + + + + + + + + +
+ + +Set Timezone + +
+ +
+Current system time:

+Your current timezone is set to: ${timezone}

`; + + +const timezones = [ + ["UTC-12:00", "-1200"], ["UTC-11:00", "-1100"], ["UTC-10:00", "-1000"], ["UTC-09:00", "-0900"], ["UTC-08:00", "-0800"], + ["UTC-07:00", "-0700"], ["UTC-06:00", "-0600"], ["UTC-05:00", "-0500"], ["UTC-04:00", "-0400"], ["UTC-03:00", "-0300"], + ["UTC-02:00", "-0200"], ["UTC-01:00", "-0100"], ["UTC±00:00", "-0000"], ["UTC+01:00", "+0100"], ["UTC+02:00", "+0200"], + ["UTC+03:00", "+0300"], ["UTC+04:00", "+0400"], ["UTC+05:00", "+0500"], ["UTC+06:00", "+0600"], ["UTC+07:00", "+0700"], + ["UTC+08:00", "+0800"], ["UTC+09:00", "+0900"], ["UTC+10:00", "+1000"], ["UTC+11:00", "+1100"], ["UTC+12:00", "+1200"] +]; + +html += ``; + +html += `
+
+ +
+ + +
+ +
+ + +
+ +
+ +
+
+ + +
+
+
+ + +`; + +data = html; \ No newline at end of file diff --git a/zefie_wtvp_minisrv/includes/classes/WTVShared.js b/zefie_wtvp_minisrv/includes/classes/WTVShared.js index bc9d8f4e..f3943b18 100644 --- a/zefie_wtvp_minisrv/includes/classes/WTVShared.js +++ b/zefie_wtvp_minisrv/includes/classes/WTVShared.js @@ -662,6 +662,10 @@ class WTVShared { return this.getFileLastModified(file).toUTCString(); } + getFileLastModifiedUTCObj(file) { + return new Date(new Date().setUTCSeconds(this.getFileLastModified(file).getUTCSeconds())); + } + /** * Returns a RFC7231 compliant UTC Date String from the current time * @param {Number} offset Offset from current time (+/-)