v0.7.2
- Rename project - Add GPL3 License (RETROACTIVE) - Fill out package.json - Switch crc16 module to hopefully improve Windows end-user experience - Update README - http proxy support (with support for external proxies such as WebOne) - fix: properly handle proxy dns error - fix: proxy binary data - begin initial work on wtv-flashrom (not yet ready) - fix: typo in zefie.html - add config.service_name variable for future use - Sync servicevault files into vs project (nsjproj) file
49
zefie_wtvp_minisrv/ServiceVault/wtv-1800/finish-prereg.js
Normal file
@@ -0,0 +1,49 @@
|
||||
if (socket_session_data[socket.id].ssid != null && !getSessionData(socket_session_data[socket.id].ssid, 'wtvsec_login')) {
|
||||
var wtvsec_login = new WTVSec();
|
||||
wtvsec_login.IssueChallenge();
|
||||
wtvsec_login.set_incarnation(request_headers['wtv-incarnation']);
|
||||
setSessionData(socket_session_data[socket.id].ssid, 'wtvsec_login', wtvsec_login)
|
||||
} else {
|
||||
var wtvsec_login = getSessionData(socket_session_data[socket.id].ssid, 'wtvsec_login')
|
||||
}
|
||||
|
||||
var contype = "text/tellyscript";
|
||||
|
||||
var skip_tellyscript = false;
|
||||
|
||||
// if relogin, skip tellyscript
|
||||
if (query['relogin']) {
|
||||
contype = "text/html"; // skip tellyscript
|
||||
wtvsec_login.ticket_b64 = null; // clear old ticket
|
||||
}
|
||||
|
||||
headers = `200 OK
|
||||
Connection: Keep-Alive
|
||||
wtv-initial-key: ` + wtvsec_login.challenge_key.toString(CryptoJS.enc.Base64) + `
|
||||
Content-Type: `+ contype + `
|
||||
wtv-service: reset
|
||||
` + getServiceString('wtv-1800') + `
|
||||
` + getServiceString('wtv-star') + `
|
||||
` + getServiceString('wtv-head-waiter') + `
|
||||
` + getServiceString('wtv-flashrom') + `
|
||||
wtv-boot-url: wtv-1800:/preregister?relogin=true
|
||||
wtv-visit: wtv-head-waiter:/login?
|
||||
wtv-client-time-zone: GMT -0000
|
||||
wtv-client-time-dst-rule: GMT
|
||||
wtv-client-date: `+strftime("%a, %d %b %Y %H:%M:%S", new Date(new Date().toUTCString()))+` GMT`;
|
||||
|
||||
// if relogin, skip tellyscript
|
||||
var romtype = null;
|
||||
if (!query['relogin'] && skip_tellyscript == false) {
|
||||
var romtype = getSessionData(socket_session_data[socket.id].ssid, 'wtv-client-rom-type');
|
||||
}
|
||||
|
||||
switch (romtype) {
|
||||
case "US-LC2-disk-0MB-8MB":
|
||||
data = getFile("LC2/LC2_OISP_5555732_56k.tok", true);
|
||||
break;
|
||||
|
||||
default:
|
||||
data = '';
|
||||
break;
|
||||
}
|
||||
14
zefie_wtvp_minisrv/ServiceVault/wtv-1800/preregister.js
Normal file
@@ -0,0 +1,14 @@
|
||||
var gourl = "wtv-1800:/finish-prereg?";
|
||||
if (query['relogin']) gourl += "relogin=true";
|
||||
|
||||
|
||||
if (request_headers['wtv-ticket']) {
|
||||
gourl = "wtv-head-waiter:/login-stage-two?";
|
||||
}
|
||||
|
||||
headers = `200 OK
|
||||
Connection: Keep-Alive
|
||||
wtv-expire-all: wtv-
|
||||
wtv-open-isp-disabled: false
|
||||
wtv-visit: `+ gourl + `
|
||||
Content-type: text/html`;
|
||||
|
After Width: | Height: | Size: 1.8 KiB |
BIN
zefie_wtvp_minisrv/ServiceVault/wtv-flashrom/ROMCache/S40H1.gif
Normal file
|
After Width: | Height: | Size: 84 B |
BIN
zefie_wtvp_minisrv/ServiceVault/wtv-flashrom/ROMCache/Shadow.gif
Normal file
|
After Width: | Height: | Size: 44 B |
BIN
zefie_wtvp_minisrv/ServiceVault/wtv-flashrom/ROMCache/Spacer.gif
Normal file
|
After Width: | Height: | Size: 43 B |
|
After Width: | Height: | Size: 7.3 KiB |
112
zefie_wtvp_minisrv/ServiceVault/wtv-flashrom/get-lc2-page.js
Normal file
@@ -0,0 +1,112 @@
|
||||
// todo, actual file logic
|
||||
// - ready query param to get flashrom path, check for its existance
|
||||
// - handle last part to redirect to lc2-download-complete
|
||||
// - handle failures
|
||||
|
||||
headers = `200 OK
|
||||
Content-type: text/html`
|
||||
|
||||
data = `<html>
|
||||
<head>
|
||||
<title>
|
||||
Updating
|
||||
</title>
|
||||
<display switchtowebmode transition=none nostatus nooptions skipback clearback>
|
||||
</head>
|
||||
<body noscroll bgcolor="#191919" text="#42CC55" link="36d5ff"
|
||||
hspace=0 vspace=0 fontsize="large">
|
||||
<table cellspacing=0 cellpadding=0>
|
||||
<tr>
|
||||
<td width=104 height=74 valign=middle align=center bgcolor="3B3A4D">
|
||||
<td width=20 valign=top align=left bgcolor="3B3A4D">
|
||||
<td colspan=10 width=436 valign=middle align=left bgcolor="3B3A4D">
|
||||
<font color="D6DFD0" size="+2">
|
||||
<blackface>
|
||||
<shadow>
|
||||
<br>
|
||||
Updating now...
|
||||
</shadow>
|
||||
</blackface>
|
||||
</font>
|
||||
<tr>
|
||||
<td colspan=12 width=560 height=10 valign=top align=left>
|
||||
<tr>
|
||||
<td width=104 height=10 valign=top align=left>
|
||||
<td width=20 valign=top align=left>
|
||||
<td width=67 valign=top align=left>
|
||||
<td width=20 valign=top align=left>
|
||||
<td width=67 valign=top align=left>
|
||||
<td width=20 valign=top align=left>
|
||||
<td width=67 valign=top align=left>
|
||||
<td width=20 valign=top align=left>
|
||||
<td width=67 valign=top align=left>
|
||||
<td width=20 valign=top align=left>
|
||||
<td width=68 valign=top align=left>
|
||||
<td width=20 valign=top align=left>
|
||||
<form action="client:poweroff">
|
||||
<tr>
|
||||
<td width=104 valign=middle align=center>
|
||||
<td width=20 valign=middle align=center>
|
||||
<td colspan=9 width=100 height=258 valign=top align=left>
|
||||
<font size=+1>
|
||||
Your Internet Receiver is being<br>updated automatically.
|
||||
<p> <font size=+1>
|
||||
This will take a while, and then<br> your unit will reboot.<br><br>
|
||||
`;
|
||||
|
||||
if (flashrom_isboot && flashrom_part == 16) {
|
||||
data += `<p>
|
||||
The system will pause for about 30 seconds at the end of this
|
||||
update. Please <strong>do not</strong> interrupt the system
|
||||
during this time.
|
||||
`
|
||||
}
|
||||
data += `</font>
|
||||
</table>
|
||||
<table width="100%">
|
||||
<tr>
|
||||
<td align="left"><font size="-1" color="#D6DFD0"><small> Receiving part ${flashrom_part} of ${flashrom_total_parts}</small></font></td>
|
||||
<td align="right"><font size="-1" color="#D6DFD0"><small>v${flashrom_version} (${flashrom_type}) </small></font></td>
|
||||
</tr>
|
||||
</table>
|
||||
<center>
|
||||
<upgradeblock width=520 height=15
|
||||
${nextrompath}
|
||||
errorurl="wtv-flashrom:/lc2-download-failed"
|
||||
blockurl="wtv-flashrom:/${flashrom_rompath}
|
||||
lastblock=${flashrom_lastpart}
|
||||
curblock="${flashrom_part}"
|
||||
totalblocks="${flashrom_total_parts}"></center>
|
||||
<tr>
|
||||
<td width=104 valign=middle align=center>
|
||||
<td width=20 valign=middle align=center>
|
||||
<td colspan=10 height=2 valign=middle align=center bgcolor="#191919">
|
||||
<tr>
|
||||
<td width=104 valign=middle align=center>
|
||||
<td width=20 valign=middle align=center>
|
||||
<td colspan=9 height=1 valign=top align=left>
|
||||
<tr>
|
||||
<td width=104 valign=middle align=center>
|
||||
<td width=20 valign=middle align=center>
|
||||
<td colspan=10 height=2 valign=top align=left bgcolor="#191919">
|
||||
<tr>
|
||||
<td width=104 valign=middle align=center>
|
||||
<td width=20 valign=middle align=center>
|
||||
<td colspan=9 height=4 valign=top align=left>
|
||||
<tr>
|
||||
<td width=104 valign=middle align=center>
|
||||
<td width=20 valign=middle align=center>
|
||||
<td colspan=9 width=416 valign=top align=left>
|
||||
<table cellspacing=0 cellpadding=0>
|
||||
<tr>
|
||||
<td width=306 valign=top align=left>
|
||||
<font size="-1"><i>
|
||||
</i></font><td width=112 valign=top align=right>
|
||||
<font size="-1" color="#191919">
|
||||
</font>
|
||||
</form>
|
||||
</table>
|
||||
<td width=20 valign=middle align=center>
|
||||
</table>
|
||||
</body>
|
||||
</html>`
|
||||
@@ -0,0 +1,107 @@
|
||||
headers = `200 OK
|
||||
Content-type: text/html`
|
||||
|
||||
data = `<html>
|
||||
|
||||
<head>
|
||||
<title>
|
||||
Updating
|
||||
</title>
|
||||
<display switchtowebmode nostatus nooptions skipback clearback>
|
||||
|
||||
<meta http-equiv=Refresh content="270; url=client:poweroff?invalRAMImage">
|
||||
|
||||
</head>
|
||||
|
||||
<body onLoad="document.forms.invalram.submit()";
|
||||
noscroll bgcolor="#191919" text="#42CC55" link="36d5ff"
|
||||
hspace=0 vspace=0 fontsize="large">
|
||||
|
||||
<form name ="invalram" action="client:invalramimage">
|
||||
</form>
|
||||
|
||||
<table cellspacing=0 cellpadding=0>
|
||||
<tr>
|
||||
<td width=104 height=74 valign=middle align=center bgcolor="3B3A4D">
|
||||
<img src="wtv-flashrom:/ROMCache/MSNLogo.gif" width=87 height=67>
|
||||
<td width=20 valign=top align=left bgcolor="3B3A4D">
|
||||
<img src="wtv-flashrom:/ROMCache/Spacer.gif" width=1 height=1>
|
||||
<td colspan=10 width=436 valign=middle align=left bgcolor="3B3A4D">
|
||||
<font color="D6DFD0" size="+2">
|
||||
<blackface>
|
||||
<shadow>
|
||||
<img src="wtv-flashrom:/ROMCache/Spacer.gif" width=1 height=4>
|
||||
<br>
|
||||
Updating complete
|
||||
</shadow>
|
||||
</blackface>
|
||||
</font>
|
||||
<tr>
|
||||
<td colspan=12 width=560 height=10 valign=top align=left>
|
||||
<img src="wtv-flashrom:/ROMCache/S40H1.gif" width=560 height=6>
|
||||
<tr>
|
||||
<td width=104 height=10 valign=top align=left>
|
||||
<td width=20 valign=top align=left>
|
||||
<td width=67 valign=top align=left>
|
||||
<td width=20 valign=top align=left>
|
||||
<td width=67 valign=top align=left>
|
||||
<td width=20 valign=top align=left>
|
||||
<td width=67 valign=top align=left>
|
||||
<td width=20 valign=top align=left>
|
||||
<td width=67 valign=top align=left>
|
||||
<td width=20 valign=top align=left>
|
||||
<td width=68 valign=top align=left>
|
||||
<td width=20 valign=top align=left>
|
||||
<tr>
|
||||
<td width=104 valign=middle align=center>
|
||||
<td width=20 valign=middle align=center>
|
||||
<td colspan=9 width=100 height=258 valign=top align=left>
|
||||
<font size=+1>
|
||||
The update is complete.<br>
|
||||
<p><font size=+1>Choose <b>Connect Now</b> if you<br>want to connect to ${services_configured.config.service_name}.
|
||||
<p><font size=+1>Press the <b>power</b> button to switch<br>off your unit.
|
||||
</font>
|
||||
<tr>
|
||||
<td width=104 valign=middle align=center>
|
||||
<td width=20 valign=middle align=center>
|
||||
<td colspan=10 height=2 valign=middle align=center bgcolor="2B2B2B">
|
||||
<img src="wtv-flashrom:/ROMCache/Spacer.gif" width=436 height=1>
|
||||
<tr>
|
||||
<td width=104 valign=middle align=center>
|
||||
<td width=20 valign=middle align=center>
|
||||
<td colspan=9 height=1 valign=top align=left>
|
||||
<tr>
|
||||
<td width=104 valign=middle align=center>
|
||||
<td width=20 valign=middle align=center>
|
||||
<td colspan=10 height=2 valign=top align=left bgcolor="0D0D0D">
|
||||
<img src="wtv-flashrom:/ROMCache/Spacer.gif" width=436 height=1>
|
||||
<tr>
|
||||
<td width=104 valign=middle align=center>
|
||||
<td width=20 valign=middle align=center>
|
||||
<td colspan=9 height=4 valign=top align=left>
|
||||
<tr>
|
||||
<td width=104 valign=middle align=center>
|
||||
<td width=20 valign=middle align=center>
|
||||
<td colspan=9 width=416 valign=top align=left>
|
||||
<table cellspacing=0 cellpadding=0>
|
||||
<tr>
|
||||
<td width=306 valign=top align=left>
|
||||
<font size="-1"><i>
|
||||
</i></font><td width=112 valign=top align=right>
|
||||
<font size="-1" color="#E7CE4A">
|
||||
<shadow>
|
||||
|
||||
<form action="client:poweroff">
|
||||
<input selected type=submit value="Connect Now" name="UseUpgradeNow"
|
||||
borderimage="file://ROM/Borders/ButtonBorder2.bif" usestyle width=170>
|
||||
<input type="hidden" name="invalRAMImage">
|
||||
<input type="hidden" name="autoPowerOn">
|
||||
</shadow>
|
||||
</font>
|
||||
</form>
|
||||
|
||||
</table>
|
||||
<td width=20 valign=middle align=center>
|
||||
</table>
|
||||
</body>
|
||||
</html>`
|
||||
@@ -0,0 +1,50 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>
|
||||
Updating failed
|
||||
</title>
|
||||
<display switchtowebmode transition=none nostatus nooptions skipback clearback>
|
||||
</head>
|
||||
<body noscroll bgcolor="#191919" text="#42CC55" link="36d5ff"
|
||||
hspace=0 vspace=0 fontsize="large">
|
||||
<table cellspacing=0 cellpadding=0>
|
||||
<tr>
|
||||
<td width=104 height=74 valign=middle align=center bgcolor="3B3A4D">
|
||||
<img src="wtv-flashrom:/ROMCache/MSNLogo.gif" width=87 height=67>
|
||||
<td width=20 valign=top align=left bgcolor="3B3A4D">
|
||||
<img src="wtv-flashrom:/ROMCache/Spacer.gif" width=1 height=1>
|
||||
<td colspan=10 width=436 valign=middle align=left bgcolor="3B3A4D">
|
||||
<font color="D6DFD0" size="+2">
|
||||
<blackface>
|
||||
<shadow>
|
||||
<img src="wtv-flashrom:/ROMCache/Spacer.gif" width=1 height=4>
|
||||
<br>
|
||||
Updated failed
|
||||
</shadow>
|
||||
</blackface>
|
||||
</font>
|
||||
<tr>
|
||||
<td colspan=12 width=560 height=10 valign=top align=left>
|
||||
<img src="wtv-flashrom:/ROMCache/S40H1.gif" width=560 height=6>
|
||||
<tr>
|
||||
<td width=104 height=10 valign=top align=left>
|
||||
<td width=20 valign=top align=left>
|
||||
<td width=67 valign=top align=left>
|
||||
<td width=20 valign=top align=left>
|
||||
<td width=67 valign=top align=left>
|
||||
<td width=20 valign=top align=left>
|
||||
<td width=67 valign=top align=left>
|
||||
<td width=20 valign=top align=left>
|
||||
<td width=67 valign=top align=left>
|
||||
<td width=20 valign=top align=left>
|
||||
<td width=68 valign=top align=left>
|
||||
<td width=20 valign=top align=left>
|
||||
<form action="client:poweroff">
|
||||
<tr>
|
||||
<td width=104 valign=middle align=center>
|
||||
<td width=20 valign=middle align=center>
|
||||
<td colspan=9 width=100 height=258 valign=top align=left>
|
||||
<font size=+1>
|
||||
Update failed, gomennasai.
|
||||
</body>
|
||||
</html>
|
||||
35
zefie_wtvp_minisrv/ServiceVault/wtv-flashrom/willie.async.js
Normal file
@@ -0,0 +1,35 @@
|
||||
// willie is just a graphical frontend to a list of ROMs
|
||||
// the rest of the scripts should work if you manually link to a ROM, and actually have it.
|
||||
|
||||
|
||||
var proxy_query = '';
|
||||
if (query['flash']) delete query['flash'];
|
||||
if (query['vflash']) delete query['vflash'];
|
||||
|
||||
for (const [key, value] of Object.entries(query)) {
|
||||
proxy_query += "&" + key + "=" + value;
|
||||
}
|
||||
|
||||
console.log(proxy_query);
|
||||
|
||||
var options = {
|
||||
host: "wtv.zefie.com",
|
||||
path: "/willie.php?pflash=" + getSessionData(socket_session_data[socket.id].ssid, 'wtv-client-rom-type') + proxy_query,
|
||||
method: 'GET'
|
||||
}
|
||||
|
||||
|
||||
headers = "200 OK\nContent-type: text/html";
|
||||
const req = http.request(options, function (res) {
|
||||
data = '';
|
||||
console.log(` * Upstream HTTP StatusCode: ${res.statusCode}`)
|
||||
|
||||
res.on('data', d => {
|
||||
data += d;
|
||||
})
|
||||
|
||||
res.on('end', function () {
|
||||
sendToClient(socket, headers, data);
|
||||
});
|
||||
});
|
||||
req.end();
|
||||
@@ -0,0 +1,24 @@
|
||||
var challenge_response, challenge_header = '';
|
||||
var gourl;
|
||||
|
||||
if (socket_session_data[socket.id].ssid !== null) {
|
||||
if (request_headers['wtv-ticket']) {
|
||||
if (request_headers['wtv-ticket'].length > 8) {
|
||||
DecodeTicket(request_headers['wtv-ticket']);
|
||||
socket_session_data[socket.id].wtvsec.ticket_b64 = request_headers['wtv-ticket'];
|
||||
//socket_session_data[socket.id].secure == true;
|
||||
}
|
||||
} else if (socket_session_data[socket.id].wtvsec.ticket_b64 == null) {
|
||||
// TODO: client should have a ticket and send it back by now, if not we should handle this correctly
|
||||
}
|
||||
}
|
||||
|
||||
headers = `200 OK
|
||||
Connection: Keep-Alive
|
||||
wtv-encrypted: true
|
||||
wtv-ticket: `+socket_session_data[socket.id].wtvsec.ticket_b64+`
|
||||
wtv-expire-all: htv-
|
||||
wtv-home-url: wtv-home:/home?
|
||||
wtv-visit: wtv-home:/splash?
|
||||
Content-Type: text/html
|
||||
`;
|
||||
@@ -0,0 +1,107 @@
|
||||
var challenge_response, challenge_header = '';
|
||||
var gourl;
|
||||
|
||||
if (socket_session_data[socket.id].ssid != null && !getSessionData(socket_session_data[socket.id].ssid, 'wtvsec_login')) {
|
||||
var wtvsec_login = new WTVSec();
|
||||
wtvsec_login = new WTVSec();
|
||||
wtvsec_login.IssueChallenge();
|
||||
wtvsec_login.set_incarnation(request_headers['wtv-incarnation']);
|
||||
setSessionData(socket_session_data[socket.id].ssid, 'wtvsec_login', wtvsec_login)
|
||||
} else {
|
||||
var wtvsec_login = getSessionData(socket_session_data[socket.id].ssid, 'wtvsec_login')
|
||||
}
|
||||
|
||||
if (socket_session_data[socket.id].ssid !== null) {
|
||||
if (wtvsec_login.ticket_b64 == null) {
|
||||
if (request_headers['wtv-ticket']) {
|
||||
if (request_headers['wtv-ticket'].length > 8) {
|
||||
wtvsec_login.DecodeTicket(request_headers['wtv-ticket']);
|
||||
wtvsec_login.ticket_b64 = request_headers['wtv-ticket'];
|
||||
//socket_session_data[socket.id].secure = true;
|
||||
}
|
||||
} else {
|
||||
challenge_response = wtvsec_login.challenge_response;
|
||||
var 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) == client_challenge_response) {
|
||||
console.log(" * wtv-challenge-response success for "+socket_session_data[socket.id].ssid);
|
||||
wtvsec_login.PrepareTicket();
|
||||
//socket_session_data[socket.id].secure = true;
|
||||
} else {
|
||||
console.log(" * wtv-challenge-response FAILED for " + socket_session_data[socket.id].ssid);
|
||||
if (zdebug) console.log("Response Expected:", challenge_response.toString(CryptoJS.enc.Base64));
|
||||
if (zdebug) console.log("Response Received:", client_challenge_response)
|
||||
gourl = "wtv-head-waiter:/login?reissue_challenge=true";
|
||||
}
|
||||
} else {
|
||||
gourl = "wtv-head-waiter:/login?no_response=true";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (gourl) {
|
||||
headers = `200 OK
|
||||
Connection: Keep-Alive
|
||||
wtv-open-isp-disabled: false
|
||||
wtv-visit: `+ gourl + `
|
||||
Content-type: text/html`;
|
||||
data = '';
|
||||
}
|
||||
else {
|
||||
var namerand = Math.floor(Math.random() * 100000);
|
||||
var nickname = 'HackTVUsr_' + namerand;
|
||||
var userid = '1'+ Math.floor(Math.random() * 1000000000000000000);
|
||||
var offline_user_list = CryptoJS.enc.Latin1.parse("<user-list>\n\t<user userid=\"" + userid + " user-name=\"" + nickname + "\" first-name=\"HackTV\" last-name=\"User \"" + namerand + "\" password=\"\" mail-enabled=\"true\" />\n</user-list>").toString(CryptoJS.enc.Base64);
|
||||
|
||||
headers = `200 OK
|
||||
Connection: Keep-Alive
|
||||
wtv-encrypted: true
|
||||
wtv-client-time-zone: GMT -0000
|
||||
wtv-client-date: `+ strftime("%a, %d %b %Y %H:%M:%S", new Date(new Date().toUTCString())) + ` GMT
|
||||
wtv-country: US
|
||||
wtv-language-header: en-US,en
|
||||
wtv-visit: client:closeallpanels
|
||||
wtv-expire-all: client:closeallpanels
|
||||
wtv-offline-user-list: `+offline_user_list+`
|
||||
wtv-bypass-proxy: true
|
||||
wtv-ticket: `+ wtvsec_login.ticket_b64 + `
|
||||
wtv-messagewatch-checktimeoffset: off
|
||||
wtv-input-timeout: 14400
|
||||
wtv-connection-timeout: 90
|
||||
wtv-fader-timeout: 900
|
||||
wtv-ssl-log-url: wtv-log:/log
|
||||
wtv-smartcard-inserted-message: Contacting service
|
||||
user-id: `+userid+`
|
||||
wtv-transition-override: off
|
||||
wtv-allow-dsc: true
|
||||
wtv-messenger-enable: 0
|
||||
wtv-noback-all: wtv-
|
||||
wtv-service: reset
|
||||
`+ getServiceString('all') + `
|
||||
wtv-boot-url: wtv-1800:/preregister?relogin=true
|
||||
wtv-ssl-certs-download-url: wtv-head-waiter:/ssl-cert.der
|
||||
wtv-ssl-certs-checksum: 473926DC1B11F635A6B920953FDCDE6A
|
||||
wtv-user-name: `+ nickname + `
|
||||
wtv-human-name: `+ nickname + `
|
||||
wtv-irc-nick: `+ nickname + `
|
||||
wtv-home-url: wtv-home:/home?
|
||||
wtv-domain: wtv.zefie.com
|
||||
wtv-inactive-timeout: 0
|
||||
wtv-connection-timeout: 90
|
||||
wtv-show-time-enabled: true
|
||||
wtv-fader-timeout: 900
|
||||
wtv-tourist-enabled: true
|
||||
wtv-connection-timeout: 180
|
||||
wtv-ssl-timeout: 240
|
||||
wtv-login-timeout: 7200
|
||||
wtv-open-isp-disabled: false
|
||||
wtv-log-url: wtv-log:/log
|
||||
wtv-demo-mode: 0
|
||||
wtv-wink-deferrer-retries: 3
|
||||
wtv-offline-mail-enable: false
|
||||
wtv-name-server: 8.8.8.8
|
||||
wtv-visit: wtv-home:/splash?
|
||||
Content-Type: text/html`;
|
||||
}
|
||||
74
zefie_wtvp_minisrv/ServiceVault/wtv-head-waiter/login.js
Normal file
@@ -0,0 +1,74 @@
|
||||
var challenge_response, challenge_header = '';
|
||||
|
||||
if (socket_session_data[socket.id].ssid !== null) {
|
||||
var wtvsec_login = getSessionData(socket_session_data[socket.id].ssid, 'wtvsec_login');
|
||||
if (request_headers['wtv-ticket']) {
|
||||
if (wtvsec_login.ticket_b64 == null) {
|
||||
if (request_headers['wtv-ticket'].length > 8) {
|
||||
wtvsec_login.DecodeTicket(request_headers['wtv-ticket']);
|
||||
wtvsec_login.ticket_b64 = request_headers['wtv-ticket'];
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (wtvsec_login) {
|
||||
challenge_response = wtvsec_login.challenge_response;
|
||||
var 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)) {
|
||||
console.log(" * wtv-challenge-response success for " + socket_session_data[socket.id].ssid);
|
||||
wtvsec_login.PrepareTicket();
|
||||
} else {
|
||||
challenge_header = "wtv-challenge: " + wtvsec_login.IssueChallenge();
|
||||
}
|
||||
} else {
|
||||
challenge_header = "wtv-challenge: " + wtvsec_login.IssueChallenge();
|
||||
}
|
||||
} else {
|
||||
wtvsec_login = new WTVSec();
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
if (request_headers) {
|
||||
var cookiedata = {};
|
||||
Object.keys(request_headers).forEach(function (k) {
|
||||
switch (k) {
|
||||
case "wtv-capability-flags":
|
||||
case "wtv-system-version":
|
||||
case "wtv-client-rom-type":
|
||||
case "wtv-client-bootrom-version":
|
||||
case "wtv-system-chipversion":
|
||||
case "wtv-system-sysconfig":
|
||||
case "wtv-system-cpuspeed":
|
||||
cookiedata[k] = request_headers[k];
|
||||
break;
|
||||
}
|
||||
});
|
||||
}
|
||||
*/
|
||||
|
||||
if (challenge_header != '') {
|
||||
headers = `200 OK
|
||||
Connection: Keep-Alive
|
||||
Expires: Wed, 09 Oct 1991 22:00:00 GMT
|
||||
wtv-expire-all: wtv-head-waiter:
|
||||
`+ getServiceString('wtv-log') + `
|
||||
wtv-log-url: wtv-log:/log
|
||||
`+ challenge_header + `
|
||||
wtv-relogin-url: wtv-1800:/preregister?relogin=true
|
||||
wtv-reconnect-url: wtv-1800:/preregister?reconnect=true
|
||||
wtv-visit: wtv-head-waiter:/login-stage-two?
|
||||
Content-type: text/html`;
|
||||
data = '';
|
||||
} else {
|
||||
headers = `200 OK
|
||||
Connection: Keep-Alive
|
||||
Expires: Wed, 09 Oct 1991 22:00:00 GMT
|
||||
wtv-expire-all: wtv-head-waiter:
|
||||
wtv-expire-all: wtv-1800:
|
||||
wtv-visit: wtv-1800:/preregister?relogin=true
|
||||
Content-type: text/html`;
|
||||
|
||||
}
|
||||
BIN
zefie_wtvp_minisrv/ServiceVault/wtv-head-waiter/ssl-cert.der
Normal file
49
zefie_wtvp_minisrv/ServiceVault/wtv-home/home.js
Normal file
@@ -0,0 +1,49 @@
|
||||
headers =`200 OK
|
||||
Connection: Keep-Alive
|
||||
wtv-expire-all: wtv-home:/splash
|
||||
Content-type: text/html`
|
||||
|
||||
if (getSessionData(socket_session_data[socket.id].ssid, 'box-does-psuedo-encryption')) {
|
||||
var cryptstatus = "<a href='client:showalert?message=Your%20WebTV%20Unit%20sent%20us%20a%20request%20for%20SECURE%20ON%2C%20but%20did%20not%20encrypt%20any%20data%2C%20nor%20will%20accept%20it.%20However%2C%20we%20send%20the%20wtv-encryption%20flag%20to%20roll%20with%20it%2C%20enabling%20%27psuedo-encryption%27.%20Nothing%20is%20encrypted%2C%20but%20the%20box%20trusts%20us.%20This%20will%20probably%20go%20away%20if%20you%20reload%20or%20change%20pages.&buttonaction1=client:donothing&buttonlabel1=Oh%2C%20okay...'>Psuedo-encrypted</a>";
|
||||
} else {
|
||||
var cryptstatus = ((socket_session_data[socket.id].secure === true) ? "Encrypted" : "Not Encrypted")
|
||||
}
|
||||
|
||||
|
||||
data =`<html>
|
||||
<head>
|
||||
<title>Home for minisrv</title>
|
||||
<DISPLAY showwhencomplete options showoptions noscroll>
|
||||
</head>
|
||||
<body bgcolor="black" link="gold" vlink="gold" alink="gold" text="gold">
|
||||
<script>
|
||||
function go() {
|
||||
location.href=document.access.url.value;
|
||||
}
|
||||
</script>
|
||||
<h2>Welcome to `+ z_title + `</h2>
|
||||
<h3>Encryption Status: `+cryptstatus+`</h3>`
|
||||
data += `<h4>Working stuff</h4>
|
||||
<a href="client:relog">client:relog (direct)</a><br>
|
||||
<a href="wtv-tricks:/blastcache?return_to=wtv-home:/home">Clear Cache</a><br>
|
||||
<form name=access onsubmit="go()">
|
||||
<input name=url `;
|
||||
|
||||
if (query['url']) {
|
||||
data += "value='"+unescape(query['url'])+"'";
|
||||
}
|
||||
|
||||
data += `width=250 bgcolor=#444444 text=#ffdd33 cursor=#cc9933 selected>
|
||||
<input type=submit value="Access URL" borderstyle="ButtonBorder2.bif">
|
||||
</form>
|
||||
|
||||
<h4>zefie's server only</h4>
|
||||
<a href="wtv-home:/zefie">zefie's stuff and things</a>
|
||||
|
||||
<h4>Test Stuff (probably broken)</h4>
|
||||
<a href="wtv-update:/update?">HackTV Updater Test</a><br>
|
||||
<a href="wtv-flashrom:/willie">Ultra Willies</a><br>
|
||||
<a href="client:showalert?message=If%20you%20choose%20to%20disconnect%20and%20return%20to%20HackTV%20home%2C%20you%20may%20not%20be%20able%20to%20reconnect%20to%20the%20update%20server%20until%20you%20power%20cycle%20your%20box.%3Cbr%3E%3Cbr%3EAre%20you%20sure%20you%20would%20like%20to%20go%20offline%3F&buttonlabel1=No&buttonaction1=client:donothing&buttonlabel2=Yes&buttonaction2=wtv-tricks%3A%2Fgo-offline%3Ftitle%3DHackTV%2520Home">Disconnect and go to HackTV Home</a><br>
|
||||
|
||||
</body>
|
||||
</html>`
|
||||
25
zefie_wtvp_minisrv/ServiceVault/wtv-home/splash.txt
Normal file
@@ -0,0 +1,25 @@
|
||||
200 OK
|
||||
Connection: Keep-Alive
|
||||
wtv-expire-all: wtv-
|
||||
Content-type: text/html
|
||||
|
||||
<html>
|
||||
<title>Engaging zefie...</title>
|
||||
<head>
|
||||
<display nooptions showwhencomplete nostatus skipback clearback fontsize=medium>
|
||||
<meta
|
||||
http-equiv=refresh
|
||||
content="5; url=wtv-home:/home?"
|
||||
>
|
||||
</head>
|
||||
|
||||
<body bgcolor="#000000" text="#449944">
|
||||
<bgsound src="file://ROM/Sounds/Splash.mid">
|
||||
<center>
|
||||
<img src="wtv-star:/images/HackTVLogo.gif">
|
||||
<br>
|
||||
<spacer type=block height=98 width=21>
|
||||
<br>
|
||||
</center>
|
||||
</body>
|
||||
</html>
|
||||
18
zefie_wtvp_minisrv/ServiceVault/wtv-home/zefie.html
Normal file
@@ -0,0 +1,18 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>zefie's playground</title>
|
||||
<DISPLAY showwhencomplete options showoptions noscroll>
|
||||
</head>
|
||||
<body bgcolor="black" link="gold" vlink="gold" alink="gold" text="gold">
|
||||
|
||||
<h3>zefie's playgrounf</h3>
|
||||
Moved these off the main page to clean it up :)<br>
|
||||
The stuff on this page is probably useless to you so why not move it off the main page.
|
||||
|
||||
<ul>
|
||||
<li><a href="wtv-music:/content/index.html">Music Collection</a></li>
|
||||
<li><a href="wtv-music:/midi/index.html">Matt Test</a></li>
|
||||
<ul>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
18
zefie_wtvp_minisrv/ServiceVault/wtv-log/log.js
Normal file
@@ -0,0 +1,18 @@
|
||||
// write posted log data to disk. should be decrypted by this point (if it was encrypted) if the crypto stream didn't break
|
||||
|
||||
if (request_headers['post_data']) {
|
||||
var fullpath = __dirname + "/ServiceLogPost/" + Math.floor(new Date().getTime() / 1000) + "_" + query['type'];
|
||||
if (socket_session_data[socket.id].ssid) fullpath += "_" + socket_session_data[socket.id].ssid;
|
||||
|
||||
fullpath = fullpath.replace(/\\/g, "/");
|
||||
fs.writeFileSync(fullpath, request_headers['post_data'].toString(CryptoJS.enc.Hex), "Hex");
|
||||
console.log("Wrote POST log data from", socket_session_data[socket.id].ssid, "to", fullpath, "on", socket.id);
|
||||
}
|
||||
|
||||
headers = `200 OK
|
||||
Connection: Keep-Alive
|
||||
Content-length: 0`;
|
||||
|
||||
data = '';
|
||||
|
||||
|
||||
BIN
zefie_wtvp_minisrv/ServiceVault/wtv-star/images/HackTVLogo.gif
Normal file
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 5.7 KiB |
|
After Width: | Height: | Size: 7.3 KiB |
11
zefie_wtvp_minisrv/ServiceVault/wtv-tricks/access.js
Normal file
@@ -0,0 +1,11 @@
|
||||
// Allow URL access outside our trusted minisrv
|
||||
|
||||
if (query['url']) var url = unescape(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"
|
||||
|
||||
headers = `200 OK
|
||||
wtv-visit: `+url+`
|
||||
Content-type: text/html`
|
||||
|
||||
|
||||
data = '';
|
||||
23
zefie_wtvp_minisrv/ServiceVault/wtv-tricks/blastcache.js
Normal file
@@ -0,0 +1,23 @@
|
||||
headers = `200 OK
|
||||
wtv-expire-all: wtv-
|
||||
wtv-expire-all: http
|
||||
Content-type: text/html`
|
||||
|
||||
var visit_url = null;
|
||||
|
||||
if (request_headers['Referer']) visit_url = request_headers['Referer'];
|
||||
else if (query['return_to']) visit_url = query['return_to'];
|
||||
else visit_url = "client:goback";
|
||||
|
||||
data = `<html>
|
||||
<head>
|
||||
<meta
|
||||
http-equiv=refresh
|
||||
content="1; url=`+ visit_url +`"
|
||||
>
|
||||
<body bgcolor="black" text="gold" link="gold" vlink="gold" alink="gold">
|
||||
Successfully expired service URL cache<br>
|
||||
Any previously cached pages should be reloaded from the network.<br><br>
|
||||
<a href="`+visit_url+`">Not loading? Click here.</a>
|
||||
</body>
|
||||
</html>`;
|
||||
42
zefie_wtvp_minisrv/ServiceVault/wtv-tricks/go-offline.js
Normal file
@@ -0,0 +1,42 @@
|
||||
headers = `200 OK
|
||||
wtv-noback-all: wtv-
|
||||
wtv-expire-all: wtv-
|
||||
Content-type: text/html
|
||||
wtv-service: reset
|
||||
`+getServiceString('wtv-1800');
|
||||
|
||||
|
||||
// HackTV Homepage is default
|
||||
var url="file://Disk/Browser/Games/Games.html";
|
||||
|
||||
if (query['url']) {
|
||||
url = query['url'];
|
||||
}
|
||||
|
||||
data = `<html>
|
||||
<head>
|
||||
<title>Going offline...</title>
|
||||
<DISPLAY notvaudio allowoffline hideoptions switchtowebmode>
|
||||
<body bgcolor="black" text="gold" onload="onLoad">
|
||||
<script type="text/javascript">
|
||||
function disconnect() {
|
||||
location.href = "client:HangUpPhone?allow-reconnect=no";
|
||||
}
|
||||
function go(url) {
|
||||
location.href = url;
|
||||
}
|
||||
|
||||
if (window.location) {
|
||||
setTimeout('disconnect()',100);
|
||||
setTimeout('go("`+url+`")',200);
|
||||
}
|
||||
</script>
|
||||
<br><br>
|
||||
`
|
||||
if (query['title']) {
|
||||
data += "Going offline and loading "+decodeURI(query['title'])+", please wait!";
|
||||
} else {
|
||||
data += "Please wait a moment.";
|
||||
}
|
||||
|
||||
data += "</body>\n</html>";
|
||||
@@ -0,0 +1,10 @@
|
||||
GROUP name=Browser version=!VERS! root=file://Disk/Browser/Games/
|
||||
display Updating HackTV Files...
|
||||
sync Games.html content/htvupdate/Games/Games.html
|
||||
sync cSetup.html content/htvupdate/Games/cSetup.html
|
||||
END-GROUP
|
||||
|
||||
GROUP name=Browser version=!VERS! root=file://Disk/Browser/MattMan/
|
||||
display Updating HackTV Files...
|
||||
sync Tricks/tricks.html content/htvupdate/MattMan/Tricks/tricks.html
|
||||
END-GROUP
|
||||
@@ -0,0 +1,122 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>HackTV Home</title>
|
||||
<DISPLAY notvaudio allowoffline options hideoptions switchtowebmode>
|
||||
<script>
|
||||
if (document.images) {
|
||||
pic1 = new Image();
|
||||
pic1.src = 'mame.jpg';
|
||||
pic2 = new Image();
|
||||
pic2.src = 'doom.jpg';
|
||||
pic3 = new Image();
|
||||
pic3.src = 'checkers.jpg';
|
||||
pic4 = new Image();
|
||||
pic4.src = 'music.jpg';
|
||||
pic5 = new Image();
|
||||
pic5.src = 'file1.jpg';
|
||||
pic6 = new Image();
|
||||
pic6.src = 'tricks.jpg';
|
||||
pic7 = new Image();
|
||||
pic7.src = 'wtvcity2.gif';
|
||||
pic8 = new Image();
|
||||
pic8.src = 'tic.jpg';
|
||||
pic9 = new Image();
|
||||
pic9.src = 'html.jpg';
|
||||
pic10 = new Image();
|
||||
pic10.src = 'cSetup.jpg';
|
||||
pic11 = new Image();
|
||||
pic11.src = 'msn.jpg';
|
||||
pic12 = new Image();
|
||||
pic12.src = 'wtvcity.gif';
|
||||
pic13 = new Image();
|
||||
pic13.src = 'tvh.jpg';
|
||||
pic14 = new Image();
|
||||
pic14.src = 'cross.jpg';
|
||||
pic15 = new Image();
|
||||
pic15.src = 'ydkj.jpg';
|
||||
} else {
|
||||
pic1 = pic2 = pic3 = pic4 = pic5 = pic6 = pic7 = pic8 = pic9 = pic10 = pic11 = pic12 = pic13 = pic14 = document.r1 = "";
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body bgcolor="#281f26" background="Pattern_Games.gif" text="#cbcbcb" alink="#4489a8" vlink="#4489a8" link="#4489a8" hspace="0" vspace="0" fontsize="large">
|
||||
<table cellspacing="0" cellpadding="0" cellborder="0">
|
||||
<tr>
|
||||
<td background="GamesShadowLogo.gif" width="104" height="80" valign="top" align="left"><spacer type="block" WIDTH="11" HEIGHT="11"><br>
|
||||
<spacer type="block" WIDTH="10" HEIGHT="1"> <a href="client:showalert?message=Credits:<br><br>eMac<br>MattMan69<br>Outa<br><br>Oct.%202014" onmouseover="document.r1.src=pic7.src;"><img src="file://disk/browser/Games/hacktv4.gif" width="90" height="69"></a></td>
|
||||
<td width="456" height="80" valign="top" align="center"><img src="GamesBanner.gif" width="456" height="50"><br>
|
||||
<img src="file://rom/tvimages/Shadow_Horizontal.gif" width="456" height="6"></td></tr></table>
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tr>
|
||||
<td colspan="3" height="6"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td abswidth="40"> </td>
|
||||
<td>
|
||||
<table>
|
||||
<td abswidth="200"><font size="1" color="#ffcf69"><shadow>Play Games</shadow></font></td>
|
||||
|
||||
<tr>
|
||||
<td width="150" height="40" valign="top" align="left"><font size="1" color="#989898">
|
||||
<li><a href="file://disk/browser/Games/mame.html" onmouseover="document.r1.src=pic1.src;">M.A.M.E.</a>
|
||||
<li><a href="file://disk/browser/Games/doom.html" onmouseover="document.r1.src=pic2.src;">Doom</a>
|
||||
<!--li><a href="client:boota?partition=JackROM&size=5242880&source=file://disk/Doom/jackWebTVplus.o">YDKJ</a-->
|
||||
<li><a href="file://disk/browser/Games/Checkers/index.html" onmouseover="document.r1.src=pic3.src;">Checkers</a>
|
||||
<li><a href="file://disk/browser/Games/crossword/general/index.html" onmouseover="document.r1.src=pic14.src;">Crosswords</a>
|
||||
<li><a href="file://disk/browser/Games/tictac/index.html" onmouseover="document.r1.src=pic8.src;">TicTacToe</a></td></tr>
|
||||
<tr>
|
||||
<td><font size="1" color="#ffcf69"><shadow>Play Music</shadow></font></td>
|
||||
|
||||
<tr>
|
||||
<td width="200" height="35" valign="top" align="left"><font size="1" color="#989898">
|
||||
<li><a href="file://disk/Music/index.html" onmouseover="document.r1.src=pic4.src;">WebTV Music</a>
|
||||
<li><a href="file://disk/Music/Rock/index.html" onmouseover="document.r1.src=pic4.src;">Rock Music</a></td></tr>
|
||||
|
||||
<tr>
|
||||
<td><font size="1" color="#ffcf69"><shadow>Tech Area</shadow></font></td>
|
||||
|
||||
<tr>
|
||||
<td width="150" height="60" valign="top" align="left"><font size="1" color="#989898">
|
||||
<li><a href="file://disk/Browser/MattMan/techinfo.html" onmouseover="document.r1.src=pic5.src;">Tech Info</a>
|
||||
<li><a href="file://disk/Browser/MattMan/html/index.html" onmouseover="document.r1.src=pic9.src;">HTML Viewer</a>
|
||||
<li><a href="file://disk/Browser/MattMan/Tricks/tricks.html" onmouseover="document.r1.src=pic6.src;">HackTV Tricks</a>
|
||||
<li><a href="file://disk/Browser/Games/cSetup.html" onmouseover="document.r1.src=pic10.src;">Connect Setup</a>
|
||||
<li><font size="-1"><sup>NEW!</sup</font><a href="client:ConfirmConnectSetup?machine=192.168.11.8&port=1615&ServiceType=custom&useEncryption=true&useDirectConnection=true&Connect=Connect"> Check for Updates</a>
|
||||
<!--li>Boot <a href="client:boota?NA" onmouseover="document.r1.src=pic11.src;">2.9</a> - <a href="client:boota?NA" onmouseover="document.r1.src=pic12.src;" onmouseout="document.r1.src=pic13.src;">2.1</a-->
|
||||
</td></tr>
|
||||
</table>
|
||||
</td>
|
||||
|
||||
|
||||
<td valign="top">
|
||||
<table>
|
||||
<td valign="top">
|
||||
<center><font size="2" color="#ffcf69"><shadow>
|
||||
<a href="file://rom/InternalOnly/SetClock.html" onmouseover="document.r1.src=pic7.src;">&date;</a></shadow></font></center><br>
|
||||
<img src="wtvcity2.gif"
|
||||
width="260" height="193"
|
||||
border="2" name="r1"
|
||||
alt="wtv" />
|
||||
</td></tr>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table>
|
||||
<tr>
|
||||
<td align="right" width="252">
|
||||
<FORM action="client:gototvhome">
|
||||
<FONT COLOR="#E7CE4A" SIZE=-1><SHADOW>
|
||||
<INPUT TYPE=BUTTON onclick="location.href='client:activ'" BORDERIMAGE="file://ROM/tvimages/TVButtonBorder.bif" VALUE="Connect" USESTYLE WIDTH=120 onmouseover="document.r1.src=pic7.src;">
|
||||
</SHADOW></FONT>
|
||||
<FONT COLOR="#E7CE4A" SIZE=-1><SHADOW>
|
||||
<INPUT TYPE=SUBMIT BORDERIMAGE="file://ROM/tvimages/TVButtonBorder.bif" VALUE="TV Home" USESTYLE onmouseover="document.r1.src=pic13.src;" WIDTH=120>
|
||||
</SHADOW></FONT></FORM>
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,143 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>Connect Setup v2.1</title>
|
||||
<DISPLAY noscroll allowoffline hideoptions notvaudio switchtowebmode>
|
||||
</head>
|
||||
<body bgcolor="#281f26" background="Pattern_Games.gif" text="#ffcf69" link="#4489a8"
|
||||
hspace="0" vspace="0" fontsize="large" noscroll hideoptions>
|
||||
|
||||
<table cellspacing="0" cellpadding="0" cellborder="0">
|
||||
<tr>
|
||||
<td background="cSetupShadowLogo.gif" width="104" height="80" valign="top" align="left"><spacer type="block" WIDTH="11" HEIGHT="11"><br>
|
||||
<spacer type="block" WIDTH="10" HEIGHT="1"> <a href="file://disk/Browser/Games/Games.html"><img src="hacktv4.gif" width="87"
|
||||
height="67"></a> </td>
|
||||
<td width="456" height="80" valign="top" align="center"><img src="cSetup.GIF"
|
||||
width="456" height="50"><br>
|
||||
<img src="file://rom/tvimages/Shadow_Horizontal.gif" width="456" height="6"> </td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
|
||||
<h2>
|
||||
Connection Setup v2.1
|
||||
<hr>
|
||||
</h2>
|
||||
<script>
|
||||
function updateService() {
|
||||
srv = document.connect.preset[document.connect.preset.selectedIndex].value;
|
||||
switch (srv) {
|
||||
case "hacktv":
|
||||
document.connect.machine.value="192.168.1.3"
|
||||
break;
|
||||
case "wni-prod":
|
||||
document.forms[0].machine.value="10.0.0.1"
|
||||
break;
|
||||
case "wni-int":
|
||||
document.forms[0].machine.value="10.0.128.1"
|
||||
break;
|
||||
case "zefie":
|
||||
document.forms[0].machine.value="home.zef.pw"
|
||||
break;
|
||||
case "mattman":
|
||||
document.forms[0].machine.value="turdinc.kicks-ass.net"
|
||||
break;
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<form name="connect" action="client:ConfirmConnectSetup">
|
||||
<table width=100% cellspacing=1 cellpadding=0>
|
||||
<tr>
|
||||
<td colspan=3>
|
||||
<font color=#4489a8>Presets:</font>
|
||||
</td>
|
||||
<td>
|
||||
<select name="preset" onchange="updateService()" selected>
|
||||
<option value="hacktv">HackTV Default</option>
|
||||
<option value="wni-prod">WNI ANI Production Default</option>
|
||||
<option value="wni-int">WNI ANI Internal Default</option>
|
||||
<option value="zefie">zefie's Server</option>
|
||||
<option value="mattman">MattMan's Server</option>
|
||||
</select>
|
||||
<tr>
|
||||
<td colspan=3>
|
||||
<font color=#4489a8>Service:</font>
|
||||
<tr>
|
||||
<td width=15></td>
|
||||
<td height=2>
|
||||
<tr>
|
||||
<td height=2>
|
||||
<tr>
|
||||
<td>
|
||||
<td>
|
||||
<input name=serviceType type=radio bgcolor=#444444 value=custom checked>
|
||||
<td>
|
||||
Custom:
|
||||
<td>
|
||||
Address:
|
||||
<input size=16 ASCIIONLY name=machine bgcolor=#444444 text=#4489a8 cursor=#cc9933 value="192.168.1.3">
|
||||
Port:
|
||||
<input size=5 ASCIIONLY NUMBERS name=port bgcolor=#444444 text=#4489a8 cursor=#cc9933 value="1615">
|
||||
</table>
|
||||
<table cellspacing=1 cellpadding=0>
|
||||
<tr>
|
||||
<td height=6>
|
||||
<tr>
|
||||
<td colspan=3>
|
||||
<font color=#4489a8>Service options:</font><br><br>
|
||||
<tr>
|
||||
<td width=15>
|
||||
<td>
|
||||
<input type=checkbox name=forceSignup value=true>
|
||||
<td>
|
||||
Force signup
|
||||
<td width=390 align=right>
|
||||
<form action="client:GoToPhoneSetup">
|
||||
<font color="#E7CE4A" size=-2><shadow>
|
||||
<input
|
||||
type=submit
|
||||
borderimage="file://ROM/tvimages/TVButtonBorder.bif"
|
||||
value="Phone Settings"
|
||||
name="Phone Settings"
|
||||
usestyle
|
||||
width=170>
|
||||
</shadow></font>
|
||||
</form>
|
||||
<tr>
|
||||
<td height=2>
|
||||
<tr>
|
||||
<td width=15>
|
||||
<td>
|
||||
<input type=checkbox name=useEncryption value=true checked>
|
||||
<td>
|
||||
Use encryption
|
||||
<tr>
|
||||
<td height=2>
|
||||
<tr>
|
||||
<td width=15>
|
||||
<td>
|
||||
<input type=checkbox name=useDirectConnection value=true>
|
||||
<td width=300>
|
||||
Use direct connection
|
||||
<td width=390 align=right>
|
||||
<font color="#E7CE4A" size=-2><shadow>
|
||||
<input
|
||||
type=submit
|
||||
borderimage="file://ROM/tvimages/TVButtonBorder.bif"
|
||||
value="Connect"
|
||||
name="Connect"
|
||||
usestyle
|
||||
width=170>
|
||||
</shadow></font>
|
||||
</table>
|
||||
<br><br>
|
||||
<table width=100%>
|
||||
<tr>
|
||||
<td align=left width=100% height=70>
|
||||
|
||||
<td align=right width=100% height=70>
|
||||
|
||||
</table>
|
||||
</form>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,52 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>HackTV Tricks</title>
|
||||
<SCRIPT language="JavaScript">
|
||||
|
||||
function checkWord(e) {
|
||||
//e.preventDefault();
|
||||
var readersEntry = document.pform.pword.value;
|
||||
|
||||
if (readersEntry.toLowerCase() == "seqret1") {
|
||||
window.location.href="file://disk/Browser/MattMan/Tricks/tricks2.html" ;
|
||||
} else {
|
||||
document.pform.pword.value="";
|
||||
alert ("Bad password, access denied!!!");
|
||||
}
|
||||
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
</SCRIPT>
|
||||
|
||||
</head>
|
||||
<body bgcolor="#191919" text="#44cc55" link="36d5ff" vlink="36d5ff" vspace=0>
|
||||
<sidebar width=20%>
|
||||
<img src="tricksside.jpg">
|
||||
</sidebar>
|
||||
|
||||
<br>
|
||||
<br>
|
||||
<br>
|
||||
<h1>HackTV Tricks</h1>
|
||||
<br>
|
||||
<br>
|
||||
Hello, citizen! You have reached the "tricks" page. This is meant
|
||||
for use by 1337 hackers of WebTV networks. If you remember the
|
||||
right "tricks" you know the password and may enter the access password now.
|
||||
Otherwise hit the "back" button on your keyboard / remote now!
|
||||
<p>
|
||||
Pages beyond this area could cause bodily harm or may render your WebTV useless!
|
||||
<p>
|
||||
Remember, the computer is your friend.
|
||||
<p>
|
||||
|
||||
<FORM name="pform" onsubmit="checkWord(e);">
|
||||
<input name="pword" id="password" bgcolor=#444444 text=#ffdd33 cursor=#cc9933 type="password" size="16">
|
||||
<input name="button1" value="Enter" onclick="checkWord()" type="button">
|
||||
|
||||
</FORM>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
39
zefie_wtvp_minisrv/ServiceVault/wtv-update/sync.js
Normal file
@@ -0,0 +1,39 @@
|
||||
var content_dir = service_dir + '/content/';
|
||||
var diskmap_dir = content_dir + '/diskmaps/';
|
||||
|
||||
if (initial_headers['post_data']) {
|
||||
console.log(initial_headers['post_data'].toString('CryptoJS.enc.Latin1'))
|
||||
}
|
||||
|
||||
if (query['diskmap']) {
|
||||
if (fs.lstatSync(diskmap_dir + query['diskmap'] + ".txt")) {
|
||||
var diskmap_data = fs.readFileSync(diskmap_dir + query['diskmap'] + ".txt").toString();
|
||||
// try to parse diskmap and get an accurate timestamp for webtv versioning
|
||||
// check all files in the diskmap and return the timestamp of the most recently modified
|
||||
|
||||
data = '';
|
||||
var latest_file_ts = 0;
|
||||
diskmap_data.split("\n").forEach(function (v) {
|
||||
if (v.indexOf(" sync ") != -1) {
|
||||
v = v.trim();
|
||||
var vcon = v.substring(v.indexOf("content/"));
|
||||
vcon = vcon.replace("content/", content_dir)
|
||||
var vconstat = Math.floor(fs.lstatSync(vcon).mtimeMs / 1000);
|
||||
if (vconstat > latest_file_ts) {
|
||||
latest_file_ts = vconstat
|
||||
}
|
||||
// todo read client post and only give whats needed
|
||||
// instead of all that is available
|
||||
// vconstat has the mtime of each file, we need to parse the post_data
|
||||
data += v + "\n";
|
||||
} else {
|
||||
data += v + "\n";
|
||||
}
|
||||
});
|
||||
//data = diskmap_data.replace("!VERS!", latest_file_ts);
|
||||
}
|
||||
}
|
||||
|
||||
headers = `200 OK
|
||||
Content-type: text/download-list`
|
||||
|
||||
48
zefie_wtvp_minisrv/ServiceVault/wtv-update/update.html
Normal file
@@ -0,0 +1,48 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta
|
||||
http-equiv=refresh
|
||||
content="0;url=client:Fetch?group=Browser&source=wtv-update:/sync%3Fdiskmap%3Dhtvupdate&message=Downloading%20updates..."
|
||||
>
|
||||
<display downloadsuccess="client:ShowAlert?message=HackTV%20Update%20was%20successful%21&buttonlabel2=Go%20to%20HackTV&action2=wtv-tricks:/go-offline%3Ftitle%3DHackTV%20Home&buttonlabel1=Okay&buttonaction1=client:goback&image=file://disk/browser/Games/hacktv2.gif&noback=true" downloadfail="client:ShowAlert?message=HackTV%20Update%20failed...&buttonlabel1=Okay...&buttonaction1=client:goback&image=file://disk/browser/Games/hacktv2.gif&noback=true">
|
||||
<title>HackTV Updater</title>
|
||||
</head>
|
||||
<body bgcolor=#0 text=#42CC55 fontsize=large hspace=0 vspace=0>
|
||||
<table cellspacing=0 cellpadding=0>
|
||||
<tr>
|
||||
<td width=104 height=74 valign=middle align=center bgcolor=3B3A4D>
|
||||
<img src="file://Disk/Browser/Games/hacktv4.gif" width=86 height=64>
|
||||
<td width=20 valign=top align=left bgcolor=3B3A4D>
|
||||
<spacer>
|
||||
<td colspan=2 width=436 valign=middle align=left bgcolor=3B3A4D>
|
||||
<font color=D6DFD0 size=+2><blackface><shadow>
|
||||
<spacer type=block width=1 height=4>
|
||||
<br>
|
||||
Download HackTV Updates
|
||||
</shadow>
|
||||
</blackface>
|
||||
</font>
|
||||
<tr>
|
||||
<td width=104 height=20>
|
||||
<td width=20>
|
||||
<td width=416>
|
||||
<td width=20>
|
||||
<tr>
|
||||
<td colspan=2>
|
||||
<td>
|
||||
<font size=+1>
|
||||
Your HackTV Unit is downloading updates.
|
||||
<p>This may take a while.
|
||||
</font>
|
||||
<tr>
|
||||
<td colspan=2>
|
||||
<td>
|
||||
<br><br>
|
||||
<font color=white>
|
||||
<progressindicator name="downloadprogress"
|
||||
message="Preparing..."
|
||||
height=40 width=250>
|
||||
</font>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,4 @@
|
||||
200 OK
|
||||
Content-Type: text/url
|
||||
|
||||
client:ShowAlert?message=HackTV%20Update%20was%20successful%21&buttonlabel2=Go%20to%20HackTV&action2=file%3A%2F%2FDisk%2FBrowser%2FGames%2FGames.html&buttonlabel1=Okay&buttonaction1=client:goback&image=file://disk/browser/Games/hacktv2.gif&noback=true
|
||||