6f2fa1d5107e4b4ddb9fdc347adf73985d9b4d44
- numerous bug fixes - improve session retention - use wtv-head-waiter:/relogin for boot url - viewer seems to retain only wtv-* and wtv-head-waiter, so lets try to be closer to protocol and boot with a wtv-head-waiter address instead of wtv-1800 - we still handle via wtv-1800 but we accept wtv-head-waiter:/relogin and send the client on its way to the relogin path - update wtv-home:/home - remove spacing in favor of right alignment - add compression status - guest mode session store update - allow calls to saveSessionData() but do not actually write if user is guest - saveSessionData() returns true even if guest, because false is meant to define an error - You can also use SaveIfRegistered(), this will return false on both saveSessionData() errors AND guest mode; - if you want to block guests, check for isRegistered() and block the request if it is false - otherwise this update will allow all tools (including any logins) to work with guest mode, but the stored SessionData will not be persistently saved, and lost when the cleanup timeout hits (default 3 min), or the server is restarted. - more accurately mimic WTVP by accepting URLs without / - use service-style cookie links on tricks - add catchall system & http pc server - define a catchall name to run globally or per service - catchall must be javascript, but not necessarily a .js file - catchall can request async mode - catchall will catch any non-existing requests under its directory - see wtv-flashrom:/content/content-serve.js as an example, which will catch wtv-flashrom:/content/ URLs. - http pc: sends HTTP/1.0 to PC clients - can be disabled with `pc_server_hidden_service_enabled`: false - can change servicevault path by changing string of pc_server_hidden_service - get.js in default PC service vault to get any WTV Url on the service - flashrom system updates - fix bugs - more WNI-like flow path - make scripts use `service_name` variable so that they should work in a renamed service (eg not wtv-flashrom, untested) - rewrite wtv-disk system - move wtv-update to wtv-disk - allow accessing wtv-disk:/sync?group=&diskmap= - rewrite Download List generation to be more proper - only send files if diskmap has changed - allow force redownload with &force=true
wtv minisrv node.js
The wtv minisrv, or "zefie_wtvp_minisrv" project is a node.js project that provides a mini WebTV Server, aiming for full WTVP (WebTV Protocol) support. This open source server is in alpha status. Use at your own risk.
Current status:
- Supports most known WebTV service encryption scenarios, for full trusted box access
- Can handle client "relogin" and "reconnect" events
- Suports
.jsservice files with synchronous or asynchronous requests - Supports multiple simultaneous users
- WebTV-compatible HTTP(S) Proxy (via minisrv, or using an external proxy for enhanced features (such as WebOne)
- WebTV cookie support (wtv-cookie) for HTTP(s)
- Flashrom flashing support for all known units (including bf0app 'Old Classic')
- Can flash anything on Ultra Willies with optional
use_zefie_serverflag set onwtv-flashromservice. wtv-update:/syncfor Download-o-Rama style file downloading- Custom Tellyscripts (not yet customizable though)
- Flat file client session store and registration system
Current issues:
- wtv-cookie implementation is still partial
- wtv-lzpf compression support is not yet reliable
- Mis-configuring wtv-update:/sync DiskMaps may cause units to delete contents of partitions (need more info)
- Satellite Receiver units reportedly cannot surf with http or https proxy. (May be fixed by current partial wtv-cookie implementation)
Won't fix:
- wtv-encryption stream breaks when two different sessions have the same SSID (eg spoofing, won't fix (production did it too))
No intentions to support user accounts, registration, or any form of database system(I guess this was a lie, but we still don't use a database!)
Feature Todo:
- wtv-lzpf support (Milestone v1.0)
- TellyScript generation and/or manipulation without external dependancies
wtv-cookie full supportDone v0.9.13Flashrom flashing for bf0app old classicDone v0.9.9SSID/IP black/whitelisting (including tying SSID to an IP or multiple IPs)Done v0.9.4Flashrom flashing functionality (at least for LC2 and higher)Done v0.8.0Implement HTTP proxy (needs to be able to defluff most of the web, think retro WAP converter)Done v0.7.1
How To Use:
- Install node.js. Be sure to say
Yeswhen asked aboutChocolatey. - Download a snapshot (either of master, or of any commit/branch/relase/tag etc)
- Extract zip somewhere and enter that directory with a command prompt
- Enter
zefie_wtvp_minisrvsubdirectory - Verify you are in the same directory as
app.js, then runnpm install - Check any configuration. Create your override
user_config.json. Especallyservice_ip. See user_config_README.md and user_config.example.json for more information.- Note: The intended use is for all custom config to be in
user_config.jsonand any custom service files to go inUserServiceVault. If you do not care about potential issues with futuregit pull, and will manually add new upstreamconfig.jsonentries, you could use the standardServiceVaultandconfig.json
- Note: The intended use is for all custom config to be in
- Run
node app.js - If you have trouble running it on Windows, try a Linux machine, Windows may need a full development enviroment or extra steps.
- Test with a WebTV Viewer or connect with a real box
- To connect with a real box, you will need to open ports in your firewall and have a way to connect your WebTV (and preferably reroute 10.0.0.1 to the server)
- See ServiceVault.md for a brief introduction to how the service files work
How to Support the Project
- Report Bugs
- Add a Feature and send a Pull Request
- Write and submit better documentation than I created (see Pull Request above)
- Support financially on Patreon
Languages
Logos
75.8%
JavaScript
19.8%
HTML
3.1%
C
0.5%
C++
0.4%
Other
0.2%