- numerous bug fixes
 - wtv-mail system
 - user account updates
 - viewergen alpha (experimental webtv viewer patcher on pc_service)
 - implement wtv-favorites with huge help from @JarHead4
 - add wtv-ticket store api
 - Bump vm2 from 3.9.5 to 3.9.7 in /zefie_wtvp_minisrv
 - fix bf0app default rom
 - Add wtv-1800 service to wtv-1800:/noflash
 - handle webtvism:
   - allow get/post variables to be the same name multiple times
   - rather than overwrite, the server will now change the variable from a string to an array.
 - Rewrite script processing a bit
   - Instead of using eval() we now use a proper VM Context
   - As a result, any scripting errors will now give a more useful filename and line number.
   - However, some things may break, if they are dependant on variables we are not allowing in the context.
 - BREAKING CHANGES:
   - `ssid_sessions[socket.ssid]` is now `session_data`
   - `require` is no longer allowed in user scripts
 - add star service
 - change how we handle modules for services in the VM
 - fixed wtv-disk:/sync always failed the first time
 - implement production-like wtv-star handling (when a service port becomes unavailable, it requests the url over the wtv-star port to show an error page)
 - renamed WTVDownloadList.js to WTVDisk.js
 - a bit more work on WTVNews (created class)
 - probably more stuff I can't remember
This commit is contained in:
zefie
2021-11-10 23:38:15 -05:00
parent 4544e815cb
commit 1165b245ce
1411 changed files with 31570 additions and 2198 deletions

View File

@@ -0,0 +1,83 @@
class WTVTemplate {
page_args = {};
constructor(page_args) {
this.page_args = page_args;
}
getTemplatePage() {
var data = `<html>
<head>
<title>Web words: ${this.page_args.word}</title>
<display
noscroll
showwhencomplete
>
</head>
<body hspace=0 vspace=0
text='E6E6E6' link='E6E6E6' vlink='E6E6E6'
fontsize='medium'
bgcolor=00292f
>
<table cellspacing=0 cellpadding=0>
<tr>
<td width=560 height=96 valign=top>
<table background="wtv-guide:/ROMCache/help/common/helpMastheadBlank.swf" width=560 height=96 cellspacing=0 cellpadding=0>
<tr>
<td width=107 height=96 valign=top rowspan=2>
<spacer type=vertical height=7><br>
<spacer type=horizontal width=7>
<a href='wtv-home:/home'>
<img src="${this.page_args.minisrv_config.config.service_logo}" width=87 height=67>
</a>
<td width=453 valign=top>
<spacer type=vertical height=54><br>
<font size=+3><blackface>
${this.page_args.word}&nbsp;
</blackface></font>
<tr>
<td align=right>
&nbsp;
</table>
<tr>
<td width=560 valign=top height=225>
<table cellpadding=0 cellspacing=0 width=560>
<tr>
<td width=25 height=17>
<td width=535>
<tr>
<td>
<td height=225 rowspan=2 valign=top>
<table cellpadding=0 cellspacing=0 height=225 width=535>
<tr>
<td height=15>
<tr>
<td>
<td valign=top>
${this.page_args.definition}
<tr>
<td width=35>
<td width=450>
<td width=50>
</table>
</table>
<tr>
<td valign=bottom align=right>
<form>
<font color=ffcf69><shadow>
<input type=button usestyle borderimage="file://ROM/Borders/ButtonBorder2.bif"
action="client:goback"
value="Done"
width='110'
selected>
<spacer type=horizontal width=20>
</shadow></font>
</form>
</table>
</body>
</html>`;
return data;
}
}
module.exports = WTVTemplate;

View File

@@ -0,0 +1,92 @@
class WTVTemplate {
page_args = {};
constructor(page_args) {
this.page_args = page_args;
}
getTemplatePage() {
var data = `<html>
<head>
<title>Web words: Index</title>
<display
noscroll
showwhencomplete
>
</head>
<body hspace=0 vspace=0
text='E6E6E6' link='E6E6E6' vlink='E6E6E6'
fontsize='medium'
bgcolor=00292f
>
<table cellspacing=0 cellpadding=0>
<tr>
<td width=560 height=96 valign=top>
<table background="wtv-guide:/ROMCache/help/common/helpMastheadBlank.swf" width=560 height=96 cellspacing=0 cellpadding=0>
<tr>
<td width=107 height=96 valign=top rowspan=2>
<spacer type=vertical height=7><br>
<spacer type=horizontal width=7>
<a href='wtv-home:/home'>
<img src="${this.page_args.minisrv_config.config.service_logo}" width=87 height=67>
</a>
<td width=453 valign=top>
<spacer type=vertical height=54><br>
<font size=+3><blackface>
Web words&nbsp;
</blackface></font>
<tr>
<td align=right>
&nbsp;
</table>
<tr>
<td width=560 valign=top height=225>
<table cellpadding=0 cellspacing=0 height=234 width=518>
<tr>
<td height=15 width=33>
<tr>
<td>
<td valign=top>
<table cellpadding=0 cellspacing=0>
<tr>
<td height=12 width=40>
<tr>
<td colspan=99>
<font color="#E6E6E6">
Choose the first letter of the word you are looking for.
<spacer type=vertical height=20><br>
<tr><td height=32>`;
var i = 0;
var j = 0;
var self = this;
Object.keys(this.page_args.letters).forEach(function (k) {
data += `<td width=40>\n<a href="wtv-guide:/help?topic=Glossary&subtopic=${self.page_args.letters[k]}" selected><blackface>${self.page_args.letters[k]}</blackface></a>\n`
i++;
j++;
if (i == 8 && self.page_args.letters.length != (j + 1)) {
// add new <tr> every 8 entries, but only if its not the last entry
i = 0;
data += `<tr><td height=32>\n`;
}
})
data += `</table>
</table>
<tr>
<td valign=bottom align=right>
<form>
<font color=ffcf69><shadow>
<input type=button usestyle borderimage="file://ROM/Borders/ButtonBorder2.bif"
action="wtv-guide:/help"
value="Done"
width='110'
selected>
<spacer type=horizontal width=20>
</shadow></font>
</form>
</table>
</body>`
return data;
}
}
module.exports = WTVTemplate;

View File

@@ -0,0 +1,120 @@
class WTVTemplate {
page_args = {};
constructor(page_args) {
this.page_args = page_args;
}
getTemplatePage() {
var data = `<html>
<head>
<title>Web words: ${this.page_args.letter}</title>
<display
noscroll
showwhencomplete
>
</head>
<body hspace=0 vspace=0
text='E6E6E6' link='E6E6E6' vlink='E6E6E6'
fontsize='medium'
bgcolor=00292f
>
<table cellspacing=0 cellpadding=0>
<tr>
<td width=560 height=96 valign=top>
<table background="wtv-guide:/ROMCache/help/common/helpMastheadBlank.swf" width=560 height=96 cellspacing=0 cellpadding=0>
<tr>
<td width=107 height=96 valign=top rowspan=2>
<spacer type=vertical height=7><br>
<spacer type=horizontal width=7>
<a href='wtv-home:/home'>
<img src="${this.page_args.minisrv_config.config.service_logo}" width=87 height=67>
</a>
<td width=453 valign=top>
<spacer type=vertical height=54><br>
<font size=+3><blackface>
Web words: ${this.page_args.letter}&nbsp;
</blackface></font>
<tr>
<td align=right>
&nbsp;
</table>
<tr>
<td width=560 valign=top height=225>
<table cellpadding=0 cellspacing=0 height=234 width=518>
<tr>
<td height=15 width=33>
<tr>
<td>
<td valign=top>
Choose a word to see what it means.
<spacer type=vertical height=15><br>
<table cellpadding=0 cellspacing=0> <tr>
<td width=180>
<td width=10 rowspan=99>
<td width=180>
<tr>
<td>`;
var table_split = Math.floor(this.page_args.words.length / 2);
var words_rendered = 0;
var self = this;
console.log(this.page_args.words);
Object.keys(this.page_args.words).forEach(function (k) {
// test
data += `<a href="wtv-guide:/help?topic=Glossary&subtopic=${self.page_args.letter}&page=${self.page_args.words[k].link}" selected>${self.page_args.words[k].word}</a><br>\n`
words_rendered++;
if (self.page_args.words.length % 2 != 0) {
// odd so split later to put extra on first row
if (words_rendered - 1 == table_split) data += `<td>`;
} else {
if (words_rendered == table_split) data += `<td>`;
}
});
/*
<a href="wtv-guide:/help/Glossary/S/svideo" selected>S-Video</a><br>
<a href="wtv-guide:/help/Glossary/S/savebutton" >Save</a><br>
<a href="wtv-guide:/help/Glossary/S/screensaver" >screen saver</a><br>
<a href="wtv-guide:/help/Glossary/S/scrollbuttons" >Scroll buttons</a><br>
<a href="wtv-guide:/help/Glossary/S/search" >Search</a><br>
<a href="wtv-guide:/help/Glossary/S/searchengine" >search engine</a><br>
<a href="wtv-guide:/help/Glossary/S/sendbutton" >Send</a><br>
<a href="wtv-guide:/help/Glossary/S/server" >server</a><br>
<a href="wtv-guide:/help/Glossary/S/serviceprovider" >service provider</a><br>
<a href="wtv-guide:/help/Glossary/S/shockwave" >Shockwave</a><br>
<td>
<a href="wtv-guide:/help/Glossary/S/shortcuts" >shortcuts</a><br>
<a href="wtv-guide:/help/Glossary/S/site" >site</a><br>
<a href="wtv-guide:/help/Glossary/S/smartcards" >Smart cards</a><br>
<a href="wtv-guide:/help/Glossary/S/spam" >spam</a><br>
<a href="wtv-guide:/help/Glossary/S/ssl" >SSL</a><br>
<a href="wtv-guide:/help/Glossary/S/storage" >Storage</a><br>
<a href="wtv-guide:/help/Glossary/S/streaming" >streaming</a><br>
<a href="wtv-guide:/help/Glossary/S/surf" >surf</a><br>
<a href="wtv-guide:/help/Glossary/S/surfwatch" >SurfWatch</a><br>
*/
data += `
</table>
<tr>
<td>
</table>
<tr>
<td valign=bottom align=right>
<form>
<font color=ffcf69><shadow>
<input type=button usestyle borderimage="file://ROM/Borders/ButtonBorder2.bif"
action="wtv-guide:/help?topic=Index&subtopic=Glossary"
value="Done"
width='110'
selected>
<spacer type=horizontal width=20>
</shadow></font>
</form>
</table>
</body>
`;
return data;
}
}
module.exports = WTVTemplate;