update csetup

This commit is contained in:
zefie
2025-08-10 20:46:22 -04:00
parent 511d78941c
commit 6c66c79ec9
2 changed files with 202 additions and 72 deletions

View File

@@ -927,27 +927,29 @@ class WebTVClientSimulator {
// Parse the HTML to extract usernames and their href links
if (bodyBuf.length > 0) {
const parseResult = this.parseVLNStageTwoHTML(bodyBuf);
if (parseResult.formData && parseResult.formAction) {
// Prepare form data as application/x-www-form-urlencoded
const formBody = parseResult.formData
? Object.entries(parseResult.formData)
.map(([key, value]) => encodeURIComponent(key) + '=' + encodeURIComponent(value))
.join('&')
: '';
if (!headers['user-id']) {
const parseResult = this.parseVLNStageTwoHTML(bodyBuf);
if (parseResult.formData && parseResult.formAction) {
// Prepare form data as application/x-www-form-urlencoded
const formBody = parseResult.formData
? Object.entries(parseResult.formData)
.map(([key, value]) => encodeURIComponent(key) + '=' + encodeURIComponent(value))
.join('&')
: '';
// Make POST request to formAction with formBody
this.debugLog(`Submitting VLN-stage-two form to ${parseResult.formAction} with password`);
this.makeRequestWithRetry(
parseResult.formAction.split(':')[0],
parseResult.formAction.replace(/^[^:]+:/, ''),
formBody,
false
).catch(err => {
console.error('Error submitting VLN-stage-two form:', err);
this.cleanup();
process.exit(1);
});
// Make POST request to formAction with formBody
this.debugLog(`Submitting VLN-stage-two form to ${parseResult.formAction} with password`);
this.makeRequestWithRetry(
parseResult.formAction.split(':')[0],
parseResult.formAction.replace(/^[^:]+:/, ''),
formBody,
false
).catch(err => {
console.error('Error submitting VLN-stage-two form:', err);
this.cleanup();
process.exit(1);
});
}
}
}
}

View File

@@ -12,7 +12,7 @@ wtv-boot-url: wtv-1800:/preregister
data = `<html>
<head>
<title>Connect Setup v2.2-minisrv</title>
<DISPLAY noscroll allowoffline notvaudio nooptions switchtowebmode noreconnectalert>
<DISPLAY noscroll allowoffline notvaudio hideoptions switchtowebmode noreconnectalert>
</head>
<body bgcolor="#3C2F47" text="#cbcbcb" link="#aaaaaa"
hspace="0" vspace="0" fontsize="large" noscroll hideoptions onload="load()">
@@ -37,56 +37,184 @@ function load() {
headers = `200 OK
Content-Type: text/html`
data = `<html><head><display nooptions noscroll allowoffline notvaudio switchtowebmode nosend>
<body hspace=0 vspace=0 fontsize=medium onload=uS() background=/ROMCache/bgpattern.gif bgcolor=003366 text=c6c6c6 link=0080ff vlink=0080ff yspeed=1 transition=slidedown>
<script src=htv-cSetup.js></script>
<title>Connect Setup v3.0</title>
</head><table cellspacing=0 cellpadding=0 bgcolor=004488 gradcolor=003366 gradangle=45 gradtransparency=100><tr><td>
<table cellspacing=0 cellpadding=0><tr>
<td background=/ROMCache/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>
</td><td width=456 height=80 valign=top>
<img src=/ROMCache/cSetup.gif width=456 height=50><br>
<img src=/ROMCache/Shadow_Horizontal.gif width=456 height=6>
</td>
</tr></table>
<table width=100% cellspacing=0 cellpadding=0><tr>
<td valign=middle><spacer height=16 type=vertical><font size=+2 color=f0f0f0 effect=emboss><b>&nbsp;Connect Setup v3.0</b></font></td>
</font></form></td>
</tr></table>
<spacer height=2 type=vertical><hr><spacer height=15 type=vertical>
<form name=c action=client:ConfirmConnectSetup>
<table width=100% cellspacing=1 cellpadding=0>
<tr><td colspan=3>&nbsp;Server:</td>
<td><select width=420 name=p onchange=uS() selected>
<option value=htv>MattMan's (HTV) MiniSrv</option>
<option value=htvb>MattMan's (HTV) MiniSrv Backup</option>
<option value=mm69>MattMan's Revival Srv.</option>
<option value=zef>zefie's MiniSrv</option>
<option value=red>WebTV Redialed</option>
<option value=local>Your Local Machine</option>
<option value=other>Other</option>
</select></table>
<table width=100% cellspacing=1 cellpadding=0>
<tr><td height=18>
<tr><td><input name=serviceType type=hidden value=custom>
&nbsp;Address:&nbsp;&nbsp;&nbsp;<input size=21 asciionly name=machine value="" bgcolor=191919 text=c6c6c6 cursor=cc9933>
&nbsp;&nbsp;&nbsp;Port:<input size=5 asciionly numbers name=port value="" bgcolor=191919 text=c6c6c6 cursor=cc9933>
</table><hr><br>
<table cellspacing=1 cellpadding=0>
<tr><td height=1>
<tr><td colspan=2>&nbsp;Info:<br><br><td>
<tr><td width=20><td width=300 align=left valign=top>
<form name=i><font size=-1 color=c6c6c6><textarea name=msg rows=6 size=50 border=0 nobackground nohighlight noselect usestyle>The public HackTV minisrv,
all are welcome to connect and enjoy the wonders of WebTV. Custom experience, but simulates the WebTV network after its MSN TV rebrand.</textarea>
</font>
<td><td width=100% align=right valign=top>
<font id=connectText color=e7ce4a size=-1 effect=shadow>
<b><input type=submit value=Connect name=Connect width=150 selected></b>
<br><br><font color=c6c6c6><input size=14 border=0 nobackground nohighlight noselect name=runByText value="Server run by:" usestyle></font>
<b><input name=runBy size=14 border=0 nobackground nohighlight noselect usestyle value=MattMan69></b>
</font>
</td></tr>
data = `<html>
<head>
<title>Connect Setup v3.0-minisrv</title>
<DISPLAY noscroll notvaudio >
</head>
<body hspace=0 vspace=0 fontsize=medium onload=uS() background=/ROMCache/bgpattern.gif bgcolor=#3C2F47 text=c6c6c6 link=0080ff vlink=0080ff yspeed=1 transition=slidedown>
<table cellspacing="0" cellpadding="0" cellborder="0" transparency=100>
<tr>
<td background="/ROMCache/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="wtv-home:/home"><img src="${minisrv_config.config.service_logo}" width="87"
height="67"></a> </td>
<td width="456" height="80" valign="top" align="center"><img src="ROMCache/cSetup.gif"
width="456" height="50"><br>
<img src="/ROMCache/Shadow_Horizontal.gif" width="456" height="6"> </td>
</tr>
</table>
`;
<h2>&nbsp;Connection Setup v3.0-minisrv </h2>
<hr>
<script>
function doConnect() {
if (document.connect.machine.value == "${minisrv_config.services['wtv-1800'].host}" && document.connect.port.value == "${minisrv_config.services['wtv-1800'].port}") {
alert("You are already here!");
} else {
document.connect.submit();
}
}
function setOther() {
count = document.connect.preset.length;
document.connect.preset.selectedIndex = count - 1;
setTimeout(updateService,10);
}
function updateService() {
srv = document.connect.preset[document.connect.preset.selectedIndex].value;
switch (srv) {
case "mattman69":
document.runBy.runByName.value=" MattMan69"
document.connect.machine.value="71.244.121.234"
document.connect.port.value="1615"
document.message.msg.value="This is MattMan69's Public HackTV minisrv, all are welcome to connect and enjoy the wonders of WebTV. Offers a custom experience."
break;
case "mm69bak":
document.runBy.runByName.value=" MattMan69"
document.connect.machine.value="71.244.121.234"
document.connect.port.value="1415"
document.message.msg.value="This is the public HackTV minisrv backup, only available when the main HackTV server is down."
break;
case "mm69pri":
document.runBy.runByName.value=" MattMan69"
document.connect.machine.value="71.244.121.234"
document.connect.port.value="1515"
document.message.msg.value="This is MattMan's normally private WebTV server. It's the real deal, not minisrv! May be up from time to time."
break;
case "zefie":
document.runBy.runByName.value=" zefie"
document.connect.machine.value="204.11.163.156"
document.connect.port.value="1615"
document.message.msg.value="This is zefie's public minisrv, for those who want the vanilla minisrv experience."
break;
case "local":
document.runBy.runByName.value=" You"
document.connect.machine.value="127.0.0.1"
document.connect.port.value="1615"
document.message.msg.value="Connect to your server via localhost. Localhost refers to the computer that you are on that is running your server."
break;
case "jarhead":
document.runBy.runByName.value=" HIDEN"
document.connect.machine.value="31.97.129.116"
document.connect.port.value="1615"
document.message.msg.value="WebTV Redialed, for those who want a more original WebTV experience."
break;
case "other":
document.runBy.runByName.value=" ???"
document.message.msg.value="Your custom service."
}
}
</script>
<form name="connect" action="wtv-tricks:/cSetup">
<table width="100%" cellspacing="1" cellpadding="0">
<tr>
<td colspan="3">
&nbsp;<font color="#BBAEC8"><shadow>Presets:</shadow></font>
</td>
<td>
<spacer W="24" type="block">
<select width="440" name="preset" onchange="updateService()" selected>
<option value="mattman69" selected>MattMan's (HTV) MiniSrv - Public</option>
<option value="mm69bak">MattMan's (HTV) MiniSrv - Bakup</option>
<option value="mm69pri">MattMan's Revival Server</option>
<option value="zefie">Zefie's MiniSrv - Public</option>
<option value="jarhead">WebTV Redialed - Public</option>
<option value="local">Localhost - Your Server</option>
<option value="other">Other</option>
</select>
</td>
</tr>
<tr>
<td absheight="6"></td>
</tr>
</table>
<hr>
<table width="100%" cellspacing="1" cellpadding="0">
<tr>
<td height="6"></td>
</tr>
<tr>
<td width="15"></td>
<td height="2"></td>
</tr>
<tr>
<td height="2"></td>
</tr>
<tr>
<td>
&nbsp;<font color="#BBAEC8"><shadow>Service:&nbsp;&nbsp;&nbsp;</shadow></font>
</td>
<td>
Address:
<input size="16" ASCIIONLY name="machine" bgcolor="#444444" text="#cbcbcb" cursor="#cc9933" value="71.244.121.234" onkeypress="setOther()">
&nbsp;&nbsp;&nbsp;Port:
<input size="5" ASCIIONLY NUMBERS name="port" bgcolor="#444444" text="#cbcbcb" cursor="#cc9933" value="1615" onkeypress="setOther()">
</td>
</tr>
</table>
<spacer type=block height="5">
<hr>
<table cellspacing=1 cellpadding=0>
<tr>
<td height=5>
<tr>
<td width=20>
<td align=left valign=top>
<font color=#BBAEC8>
<shadow>Description:</shadow>
</font><br><br>
<form name=message>
<textarea rows=4 size=46 text=#cbcbcb id=msg name=msg border="0" bgcolor=#3C2F47 value='This is the public HackTV minisrv, all are welcome to connect and enjoy the wonders of WebTV. Custom experience!' nohighlight noselect>
</textarea>
</form>
<td>
<td width=100% align=right valign=top>
<spacer type=block height="60">
<font color="#BBAEC8" size=-2>
<shadow>&nbsp;
<input type=hidden name=useEncryption value=true checked>
<input type=button value="Connect" name="Connect" onclick="doConnect()" usestyle width=160>&nbsp;&nbsp;&nbsp;
</shadow>
</font>
</form>
<table cellspacing=7 cellpadding=0 width=160>
<tr>
<td align="left">
<form name=runBy>
<font color=c6c6c6>Server run by:</font>
<tr>
<td align=left>
<b><input name=runByName text="#BBAEC8" size=11 border=0 nobackground nohighlight noselect value=&nbsp;MattMan69></b>
</form>
<tr>
</td>
</table>
</table>
</body>
</html>`;
}