zefie b0fd271dc3 v0.9.5
- major update: app.js: rewrite socket handling to stream data (fix issues POSTing with shoddy dialup, namely fix wtv-update:/sync issues)
 - update: wtv-home:/home: remove broken irc test, add links to DiskHax and VFatHax, remove URL Accessor form from MiniBrowser because it doesn't work
 - update: wtv-update:/sync: skip file if the Content-length matches the client and the client file is equal or newer, since client is not storing wtv-checksum for some reason. Client file time is set to when the client received the file last, and not actually when the file was modified on our end
 - update: wtv-head-waiter:/login-stage-two: offer prompt to minibrowser to go to home or willie
 - fix: clean up socket session data on socket error
 - code fixup: use `${}` instead of escaping string
 - app.js: better minibrowser session cleanup
 - update: http(s) proxy: do not send internal 'wtv-connection-close' header to client
 - fix: http(s) proxy: handle socks HostUnreachable error
 - fix: wtv-head-waiter:/login-stage-two: usernames longerfix: build 3833 crashes when `wtv-user-name` is too long
 - fix: wtv-log:/log
 - add: wtv-chat
 - add: wtv-setup
2022-11-29 07:43:52 -05:00
2022-11-29 07:43:52 -05:00
2021-07-11 18:19:53 -04:00
2022-11-29 07:43:52 -05:00
2022-11-29 07:43:51 -05:00
2022-11-29 07:43:52 -05:00
2022-11-29 07:43:52 -05:00
2022-11-29 07:43:52 -05:00
2022-11-29 07:43:51 -05:00

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.

License: GPL v3

Current status:

  • Supports most known WebTV service encryption scenarios, for full trusted box access
  • Can handle client "relogin" and "reconnect" events
  • Suports .js service 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)
  • wtv-flashrom for LC2 and newer boxes (bf0app unsupported, need test unit)
  • Can flash anything on Ultra Willies with optional use_zefie_server flag set on wtv-flashrom service.
  • wtv-update:/sync for Download-o-Rama style file downloading

Current issues:

  • Occasionally, in certain circumstances, a specific SSID may be unable to reconnect to the server until the server is restarted Hopefully fixed in v0.9.3
  • Mis-configuring wtv-update:/sync DiskMaps may cause units to delete contents of partitions (need more info)

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

Feature Todo:

  • Implement HTTP proxy (needs to be able to defluff most of the web, think retro WAP converter) Done v0.7.1
  • Flashrom flashing functionality (at least for LC2 and higher) Done v0.8.0
  • SSID/IP black/whitelisting (including tying SSID to an IP or multiple IPs) Done v0.9.4
  • Flashrom flashing for bf0app old classic (need donor unit)
  • wtv-lzpf support
  • (maybe) wtvchat stuff

How To Use:

  • Install node.js. Be sure to say Yes when asked about Chocolatey.
  • 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_minisrv subdirectory
  • Verify you are in the same directory as app.js, then run npm install
  • Check any configuration. Create your override user_config.json. Especally service_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.json and any custom service files to go in UserServiceVault. If you do not care about potential issues with future git pull, and will manually add new upstream config.json entries, you could use the standard ServiceVault and config.json
  • 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
Description
we do funny shit over here
Readme GPL-3.0 417 MiB
Languages
Logos 75.8%
JavaScript 19.8%
HTML 3.1%
C 0.5%
C++ 0.4%
Other 0.2%