fix/optimize wtv-tricks, wtvchat
This commit is contained in:
@@ -1,16 +1,17 @@
|
||||
var minisrv_service_file = true;
|
||||
const minisrv_service_file = true;
|
||||
|
||||
if (wtvshared.shenanigans.checkShenanigan(wtvshared.shenanigans.shenanigans.ENABLE_TRICKS_URLACCESS)) {
|
||||
// Allow URL access outside our trusted minisrv
|
||||
if (request_headers.query.url) var url = request_headers.query.url;
|
||||
else var url = "client:showalert?message=Please%20provide%20a%20%3Furl%3D%20with%20the%20url%20you%20would%20like%20to%20access.&buttonlabel1=Okay&buttonacction1=client:donothing"
|
||||
let url;
|
||||
if (request_headers.query.url) url = request_headers.query.url;
|
||||
else url = "client:showalert?message=Please%20provide%20a%20%3Furl%3D%20with%20the%20url%20you%20would%20like%20to%20access.&buttonlabel1=Okay&buttonacction1=client:donothing"
|
||||
|
||||
headers = `300 OK
|
||||
wtv-visit: ${url}
|
||||
Location: ${url}
|
||||
Content-type: text/html`
|
||||
} else {
|
||||
var err = wtvshared.doErrorPage(403, "Access Denied");
|
||||
const err = wtvshared.doErrorPage(403, "Access Denied");
|
||||
headers = err[0];
|
||||
data = err[1];
|
||||
}
|
||||
@@ -1,16 +1,16 @@
|
||||
var minisrv_service_file = true;
|
||||
var request_is_async = true;
|
||||
const minisrv_service_file = true;
|
||||
request_is_async = true;
|
||||
|
||||
|
||||
function handleError(reason) {
|
||||
var errpage = wtvshared.doErrorPage(400, reason);
|
||||
const errpage = wtvshared.doErrorPage(400, reason);
|
||||
sendToClient(socket, errpage[0], errpage[1]);
|
||||
}
|
||||
|
||||
if (!request_headers.query.url && !request_headers.query.mediaPath) {
|
||||
handleError('No URL provided');
|
||||
} else {
|
||||
var mediaURL = request_headers.query.url || request_headers.query.mediaPath;
|
||||
var targetURL = 'wtv-author:/scrapbook-add?mediaPath=' + encodeURIComponent(mediaURL);
|
||||
const mediaURL = request_headers.query.url || request_headers.query.mediaPath;
|
||||
const targetURL = 'wtv-author:/scrapbook-add?mediaPath=' + encodeURIComponent(mediaURL);
|
||||
sendToClient(socket, {'Status': 302, 'Location': targetURL, 'wtv-visit': targetURL}, '');
|
||||
}
|
||||
@@ -1,5 +1,4 @@
|
||||
var minisrv_service_file = true;
|
||||
|
||||
const minisrv_service_file = true;
|
||||
|
||||
headers = `200 OK
|
||||
Connection: Keep-Alive
|
||||
@@ -17,22 +16,22 @@ data = `<html>
|
||||
<br>
|
||||
<h1>${minisrv_config.config.service_name} Tricks</h1>`;
|
||||
|
||||
var start_time = parseInt(session_data.getTicketData("benchmark_starttime"));
|
||||
const start_time = parseInt(session_data.getTicketData("benchmark_starttime"));
|
||||
if (isNaN(start_time)) {
|
||||
data += "Invalid data, please try your benchmark again";
|
||||
} else {
|
||||
var end_time = Math.floor(new Date().getTime());
|
||||
let end_time = Math.floor(new Date().getTime());
|
||||
if (!session_data.getTicketData("benchmark_endtime")) {
|
||||
session_data.setTicketData("benchmark_endtime", end_time);
|
||||
} else {
|
||||
end_time = session_data.getTicketData("benchmark_endtime");
|
||||
}
|
||||
var download_time = end_time - start_time;
|
||||
var image_filename = wtvshared.getServiceDep("/wtv-tricks/benchmark.jpg", true);
|
||||
var image_size = fs.statSync(image_filename).size
|
||||
var image_size_kb = parseFloat(image_size / 1024).toFixed(3);
|
||||
var throughput = parseFloat((image_size / download_time) * 1024).toFixed(0);
|
||||
var throughput_bps = parseInt(throughput * 8)
|
||||
const download_time = end_time - start_time;
|
||||
const image_filename = wtvshared.getServiceDep("/wtv-tricks/benchmark.jpg", true);
|
||||
const image_size = fs.statSync(image_filename).size
|
||||
const image_size_kb = parseFloat(image_size / 1024).toFixed(3);
|
||||
const throughput = parseFloat((image_size / download_time) * 1024).toFixed(0);
|
||||
const throughput_bps = parseInt(throughput * 8)
|
||||
data += `
|
||||
<table>
|
||||
<tr>
|
||||
@@ -58,11 +57,11 @@ if (isNaN(start_time)) {
|
||||
<tr>
|
||||
<td valign=top align=right><shadow>Start Time:</shadow>
|
||||
<td width=10>
|
||||
<td valign=top>${new Date(start_time).toISOString().replace('T', ' ').substr(0, 19)}
|
||||
<td valign=top>${new Date(start_time).toISOString().replace('T', ' ').slice(0, 19)}
|
||||
<tr>
|
||||
<td valign=top align=right><shadow>End Time:</shadow>
|
||||
<td width=10>
|
||||
<td valign=top>${new Date(end_time).toISOString().replace('T', ' ').substr(0, 19)}
|
||||
<td valign=top>${new Date(end_time).toISOString().replace('T', ' ').slice(0, 19)}
|
||||
<tr>
|
||||
<td valign=top align=right><shadow>Total Time:</shadow>
|
||||
<td width=10>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
var minisrv_service_file = true;
|
||||
const minisrv_service_file = true;
|
||||
|
||||
headers = `200 OK
|
||||
Connection: Keep-Alive
|
||||
@@ -28,7 +28,7 @@ Content-type: text/html`
|
||||
</BODY>
|
||||
</HTML>`;
|
||||
} else {
|
||||
var start_time = Math.floor(new Date().getTime());
|
||||
const start_time = Math.floor(new Date().getTime());
|
||||
session_data.setTicketData("benchmark_starttime", start_time);
|
||||
headers += "wtv-expire-all: wtv-tricks:/benchmark\nContent-type: image/jpg"
|
||||
data = wtvshared.getServiceDep("/wtv-tricks/benchmark.jpg", false);
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
var minisrv_service_file = true;
|
||||
const minisrv_service_file = true;
|
||||
|
||||
headers = `200 OK
|
||||
wtv-expire-all: wtv-
|
||||
wtv-expire-all: http
|
||||
Content-type: text/html`
|
||||
|
||||
var visit_url = null;
|
||||
let visit_url = null;
|
||||
|
||||
if (request_headers.Referer) visit_url = request_headers.Referer;
|
||||
else if (request_headers.query.return_to) visit_url = request_headers.query.return_to;
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
var minisrv_service_file = true;
|
||||
|
||||
|
||||
const minisrv_service_file = true;
|
||||
|
||||
if (request_headers.query.machine && request_headers.query.port) {
|
||||
headers = `200 OK
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
var minisrv_service_file = true;
|
||||
const minisrv_service_file = true;
|
||||
|
||||
var num_per_line = 4
|
||||
var legend_every = 6;
|
||||
const num_per_line = 4
|
||||
const legend_every = 6;
|
||||
|
||||
function getLegend() {
|
||||
d = "<tr>\n";
|
||||
for (var i = 0; i < num_per_line; i++) {
|
||||
let d = "<tr>\n";
|
||||
for (let i = 0; i < num_per_line; i++) {
|
||||
d += "<td><b>Code</b>\n<td><b>Char</b>\n";
|
||||
}
|
||||
d += "<tr>\n";
|
||||
@@ -30,7 +30,7 @@ data = `<html>
|
||||
<table border=1>`;
|
||||
|
||||
|
||||
for (var i = 0; i <= 255; i++) {
|
||||
for (let i = 0; i <= 255; i++) {
|
||||
if (i % num_per_line === 0) {
|
||||
if (i % (num_per_line * legend_every) === 0) {
|
||||
data += getLegend();
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
var minisrv_service_file = true;
|
||||
const minisrv_service_file = true;
|
||||
|
||||
headers = `200 OK
|
||||
wtv-noback-all: wtv-
|
||||
@@ -9,7 +9,7 @@ wtv-service: reset
|
||||
|
||||
|
||||
// HackTV Homepage is default
|
||||
var url="file://Disk/Browser/Games/Games.html";
|
||||
let url="file://Disk/Browser/Games/Games.html";
|
||||
|
||||
if (request_headers.query.url) {
|
||||
url = request_headers.query.url;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
var minisrv_service_file = true;
|
||||
const minisrv_service_file = true;
|
||||
|
||||
headers = `300 OK
|
||||
wtv-visit: wtv-home:/home
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
var minisrv_service_file = true;
|
||||
const minisrv_service_file = true;
|
||||
|
||||
let client_caps = null;
|
||||
|
||||
@@ -71,6 +71,7 @@ const boardRev = (sysConfigHex & 0xf00) >> 8;
|
||||
const boardRevB = (sysConfigHex & 0xf0) >> 4;
|
||||
|
||||
// determine box ASIC type
|
||||
let chip;
|
||||
switch (chipVersionStr >> 0x18) {
|
||||
case 1:
|
||||
chip = "FIDO1";
|
||||
@@ -88,30 +89,37 @@ switch (chipVersionStr >> 0x18) {
|
||||
// ========================= LC2 SYSCONFIG DECODE START =========================
|
||||
|
||||
// determine box video type
|
||||
let video;
|
||||
if ((sysConfigHex & 8) == 0) video = "NTSC";
|
||||
else video = "PAL";
|
||||
|
||||
// determine box storage type
|
||||
let storage;
|
||||
if ((sysConfigHex & 4) == 0) storage = "disk";
|
||||
else storage = "flash";
|
||||
|
||||
// determine box CPU endianness
|
||||
let endianness;
|
||||
if ((sysConfigHex & 0x80000) == 0) endianness = "little";
|
||||
else endianness = "big";
|
||||
|
||||
// determine box CPU type
|
||||
let cpu;
|
||||
if ((sysConfigHex & 0x100000) == 0) cpu = 5230;
|
||||
else cpu = 4640;
|
||||
|
||||
// determine box CPU clock multiplier
|
||||
let cpuMult;
|
||||
if ((sysConfigHex & 0x20000) == 0) cpuMult = 3;
|
||||
else cpuMult = 2;
|
||||
|
||||
// determine smartcard 0 support
|
||||
let sc0;
|
||||
if ((sysConfigHex & 0x400000) == 0) sc0 = "supported";
|
||||
else sc0 = "not supported";
|
||||
|
||||
//determine smartcard 1 support
|
||||
let sc1;
|
||||
if ((sysConfigHex & 0x200000) == 0) sc1 = "supported";
|
||||
else sc1 = "not supported";
|
||||
|
||||
@@ -121,12 +129,13 @@ else sc1 = "not supported";
|
||||
-Bruce Leak, Thursday, October 12, 1995 1:53:28 AM */
|
||||
|
||||
// determine box CPU output bufs
|
||||
let outputBufs;
|
||||
if ((sysConfigHex & 0x2000) == 0) outputBufs = 100;
|
||||
else outputBufs = 50;
|
||||
|
||||
// determine box SGRAM speed
|
||||
function getSGSpeed() {
|
||||
let SGRAMand = sysConfigHex & 0xc00000;
|
||||
const SGRAMand = sysConfigHex & 0xc00000;
|
||||
if (SGRAMand == 0x400000) return 66;
|
||||
else if (0x400000 < SGRAMand)
|
||||
if (SGRAMand == 0x800000) return 77;
|
||||
@@ -135,16 +144,18 @@ function getSGSpeed() {
|
||||
}
|
||||
|
||||
// determine box audio chip type
|
||||
let audio;
|
||||
if ((sysConfigHex & 0xc0000) == 0xc0000) audio = "AKM4310/4309";
|
||||
else audio = "Unknown";
|
||||
|
||||
// determine box audio clock source
|
||||
let audioClk;
|
||||
if ((sysConfigHex & 0x20000) == 0) audioClk = "SPOT";
|
||||
else audioClk = "External";
|
||||
|
||||
// determine box video chip
|
||||
function getVideoChip() {
|
||||
let videoChipAnd = sysConfigHex & 0x600;
|
||||
const videoChipAnd = sysConfigHex & 0x600;
|
||||
|
||||
if (videoChipAnd == 0x200) return "Bt851";
|
||||
else if (videoChipAnd < 0x201 && videoChipAnd !== 0) return "Unknown";
|
||||
@@ -153,14 +164,17 @@ function getVideoChip() {
|
||||
}
|
||||
|
||||
// determine box video type
|
||||
let videoB;
|
||||
if ((sysConfigHex & 0x800) == 0) videoB = "PAL";
|
||||
else videoB = "NTSC";
|
||||
|
||||
// determine box video clock source
|
||||
let videoClk;
|
||||
if ((sysConfigHex & 0x10000) == 0) videoClk = "External";
|
||||
else videoClk = "SPOT";
|
||||
|
||||
// determine box board type
|
||||
let boardTypeB;
|
||||
switch (sysConfigHex & 0xc) {
|
||||
case 8:
|
||||
boardTypeB = "Trial";
|
||||
@@ -173,18 +187,22 @@ switch (sysConfigHex & 0xc) {
|
||||
}
|
||||
|
||||
// determine bank 0 type
|
||||
let bank0Type;
|
||||
if (sysConfigHex < 0) bank0Type = "Mask";
|
||||
else bank0Type = "Flash";
|
||||
|
||||
// determine bank 0 mode
|
||||
let bank0Mode;
|
||||
if ((sysConfigHex & 0x40000000) == 0) bank0Mode = "Normal";
|
||||
else bank0Mode = "PageMode";
|
||||
|
||||
// determine bank 1 type
|
||||
let bank1Type;
|
||||
if ((sysConfigHex & 0x8000000) == 0) bank1Type = "Flash";
|
||||
else bank1Type = "Mask";
|
||||
|
||||
// determine bank 1 mode
|
||||
let bank1Mode;
|
||||
if ((sysConfigHex & 0x40000000) == 0) bank1Mode = "Normal";
|
||||
else bank1Mode = "PageMode";
|
||||
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
var minisrv_service_file = true;
|
||||
const minisrv_service_file = true;
|
||||
let redirect, message;
|
||||
|
||||
headers = `200 OK
|
||||
Content-Type: text/html`;
|
||||
|
||||
if (session_data.getSessionData("registered")) {
|
||||
var redirect = [10, "client:goback?"];
|
||||
var message = "Error: Your box is already registered. If you would like to re-register, you must first unregister.";
|
||||
redirect = [10, "client:goback?"];
|
||||
message = "Error: Your box is already registered. If you would like to re-register, you must first unregister.";
|
||||
} else if (request_headers.query.confirm_register) {
|
||||
headers += `
|
||||
wtv-noback-all: wtv-
|
||||
@@ -13,8 +14,8 @@ wtv-expire-all: wtv-
|
||||
wtv-relogin-url: wtv-1800:/preregister?relogin=true
|
||||
wtv-reconnect-url: wtv-1800:/preregister?reconnect=true
|
||||
wtv-boot-url: wtv-1800:/preregister?relogin=true`;
|
||||
var redirect = [3, "client:relog?"];
|
||||
var message = "You will now be be redirected to registration.<br><br>";
|
||||
redirect = [3, "client:relog?"];
|
||||
message = "You will now be be redirected to registration.<br><br>";
|
||||
message += `<a href="${redirect[1]}">Click here if you are not automatically redirected.</a>`;
|
||||
} else {
|
||||
message = `Are you ready to register your box with ${minisrv_config.config.service_name}?
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
var minisrv_service_file = true;
|
||||
|
||||
|
||||
var notAdminAlert = new clientShowAlert({
|
||||
const minisrv_service_file = true;
|
||||
const notAdminAlert = new clientShowAlert({
|
||||
'image': minisrv_config.config.service_logo,
|
||||
'message': "Sorry, you are not configured as an admin on this server.<br><br>If you are the server operator, please<br> see <strong>user_config.example.json</strong><br> for an example on how to configure yourself as an administrator.",
|
||||
'buttonlabel1': "Ugh, fine.",
|
||||
@@ -12,7 +10,7 @@ var notAdminAlert = new clientShowAlert({
|
||||
headers = `200 OK
|
||||
Content-Type: text/html`
|
||||
|
||||
tricks = [
|
||||
const tricks = [
|
||||
["wtv-tricks:/info", minisrv_config.config.service_name + " info"],
|
||||
["wtv-cookie:list", "List Cookies"],
|
||||
["wtv-cookie:reset", "Clear Cookies"],
|
||||
@@ -45,7 +43,7 @@ data = `<html>
|
||||
<table cellspacing=0 cellpadding=0><tr><td abswidth=10> <td colspan=3>
|
||||
<table><tc><td> </td></tc><tc><td><table>`;
|
||||
|
||||
for (i = 0; i < tricks.length; i += 2) {
|
||||
for (let i = 0; i < tricks.length; i += 2) {
|
||||
data += `<tr>
|
||||
<td colspan=3 height=6>
|
||||
<tr>
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
var minisrv_service_file = true;
|
||||
const minisrv_service_file = true;
|
||||
let redirect, message;
|
||||
|
||||
headers = `200 OK
|
||||
Content-Type: text/html`;
|
||||
@@ -6,23 +7,23 @@ Content-Type: text/html`;
|
||||
if (!session_data.getSessionData("registered")) {
|
||||
headers += "\nwtv-noback-all: wtv-";
|
||||
headers += "\nwtv-expire-all: wtv-";
|
||||
var redirect = [5, "client:relogin?"];
|
||||
var message = "Error: Your box is not registered. You are accessing " + minisrv_config.config.service_name + " in Guest Mode. There is nothing to delete!";
|
||||
redirect = [5, "client:relogin?"];
|
||||
message = "Error: Your box is not registered. You are accessing " + minisrv_config.config.service_name + " in Guest Mode. There is nothing to delete!";
|
||||
} else if (session_data.user_id !== 0) {
|
||||
headers += "\nwtv-noback-all: wtv-";
|
||||
headers += "\nwtv-expire-all: wtv-";
|
||||
var redirect = [5, "client:relogin?"];
|
||||
var message = "Error: You must be the primary user to unregister this box.";
|
||||
redirect = [5, "client:relogin?"];
|
||||
message = "Error: You must be the primary user to unregister this box.";
|
||||
} else if (request_headers.query.confirm_unregister) {
|
||||
if (session_data.unregisterBox()) {
|
||||
headers += "\nwtv-noback-all: wtv-";
|
||||
headers += "\nwtv-expire-all: wtv-";
|
||||
var redirect = [3, "client:relog?"];
|
||||
var message = "Your account data has been successfully removed. You will now be be redirected to registration.<br><br>";
|
||||
redirect = [3, "client:relog?"];
|
||||
message = "Your account data has been successfully removed. You will now be be redirected to registration.<br><br>";
|
||||
message += `<a href="${redirect[1]}">Click here if you are not automatically redirected.</a>`;
|
||||
} else {
|
||||
var redirect = [10, "client:goback?"];
|
||||
var message = "There was an error deleting your account data. Please try again later. If the problem persists, please contact " + minisrv_config.config.service_owner + " to request manual deletion.";
|
||||
redirect = [10, "client:goback?"];
|
||||
message = "There was an error deleting your account data. Please try again later. If the problem persists, please contact " + minisrv_config.config.service_owner + " to request manual deletion.";
|
||||
message += "SSID verifcation may be required to perform a manual deletion.<br><br>Returning from whence you came...<br><br>";
|
||||
message += `<a href="${redirect[1]}">Click here if you are not automatically redirected.</a>`;
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
var minisrv_service_file = true;
|
||||
var request_is_async = true;
|
||||
const minisrv_service_file = true;
|
||||
request_is_async = true;
|
||||
|
||||
function handleError(reason) {
|
||||
var errpage = wtvshared.doErrorPage(400, reason);
|
||||
const errpage = wtvshared.doErrorPage(400, reason);
|
||||
sendToClient(socket, errpage[0], errpage[1]);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,21 +1,21 @@
|
||||
var minisrv_service_file = true;
|
||||
const minisrv_service_file = true;
|
||||
|
||||
var urldata = request_headers.request_url.split(":");
|
||||
let urldata = request_headers.request_url.split(":");
|
||||
delete urldata[0];
|
||||
|
||||
urldata = urldata.join(":").substring(1);
|
||||
urldata = urldata.join(":").slice(1);
|
||||
console.log(urldata);
|
||||
while (urldata.substring(0, 1) == "/") urldata = urldata.substring(1);
|
||||
while (urldata.slice(0, 1) == "/") urldata = urldata.slice(1);
|
||||
|
||||
var server = urldata.split('/')[0];
|
||||
var port = 6667;
|
||||
let server = urldata.split('/')[0];
|
||||
let port = 6667;
|
||||
|
||||
if (server.indexOf(":") > 0) {
|
||||
port = server.split(":")[1];
|
||||
server = server.split(":")[0];
|
||||
}
|
||||
channel = urldata.split('/')[1]
|
||||
const channel = urldata.split('/')[1]
|
||||
|
||||
var dest_url = "wtv-chat:/MakeChatPage?host=" + server + "&port=" + port + "&channel=" + channel;
|
||||
const dest_url = "wtv-chat:/MakeChatPage?host=" + server + "&port=" + port + "&channel=" + channel;
|
||||
headers = `300 Moved
|
||||
Location: ${dest_url}`
|
||||
|
||||
Reference in New Issue
Block a user