- numerous bug fixes
- too much to remember
- rewrote sync system yet again
- more classes
- WTVShared class for shared functions
- clientShowAlert class for easy client:showalert urls
- User File Store
- Can upload with PUT commands in wtv-disk
- Programmically access files with new functions in WTVClientSessionData
- TODO: file browser
- other stuff I can't remember
- work on post data bug
- proper gzip download for disk system (aka WNI reinventing the Content-Encoding: gzip wheel)
- send Last-Modified for static files
- send wtv-checksum for all disk system downloads
- update to v90 modem firmware
- offer kflex with `Old` diskmap
- 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-cookie support
- further development will be in dev branch (may rebase alot)
- compression not yet ready, leave it disabled
- update: do not delete WTVSec on last socket, instead recreate on prereg
- update: clean up SSID session data only if client is not seen for 3 minutes
- update: add shouldWeCompress() function
- update: tweak lzpf (still corrupted)
- update: rename wtv-setup:/get to wtv-setup:/get-settings
- update: add additional headers to wtv-setup:/get-settings
- update: add initial blank wtv-music:/get-playlist
- update wtv-tricks system
- Info now shows Guest Mode or Subscriber Info
- Implemented wtv-tricks:/unregister
- Implemented wtv-tricks:/register
- Show correct link in wtv-tricks:/tricks based on Guest Mode status
- config.json: enable compression by default
- WTVP does not use \r, so swapping the internal header's usage for now. May remove internal header in future update
- lzpf: this doesn't fix anything but doesn't break it more either :)
- renamed some functions
- fixed some param documentation
- added ConvertToBuffer function
- WTVSec Updates
- optimize WordArray to Buffer functions
- update documentation in WTVSec
- update WTVSec barrowed function in WTVLzpf
- removed NewRC4Session, was a pointless alias to SecureOn
- convert post_data to query if valid query data
- wtv-register system
- Store Session data as JSON flat file
- wtv-cookie support
- spent way too much time on a page no one will read
- move filterSSID to WTVClientSessionData
- disable compression until fixed
- do not delete WTVSec on last socket, instead recreate on prereg
- set 'wtv-bypass-proxy' to false
- rework header whitelist system for HTTP(s) proxy
- clean up SSID session data only if client is not seen for 3 minutes
- add shouldWeCompress() function
- add additional headers to wtv-setup:/get
- add initial blank wtv-music:/get-playlist
- update: WTVClientCapabilities: add unknown bits instead of logging error
- update: fix flashrom system
- update: webone example config
- update: app.js: more 'binary block' exclusions
- update: fix tellyscript folder name for case-sensitive filesystems
- add Lzpf compression
- initial primitive wtv-cookie service to satisfy newer builds and http(s) issues
- update: wtv-home:/home: add wtv-visit: in case javascript URL accessor fails
- update: replace bf0app and LC2 tellyscripts with box-specific PPP auth, rather than hard coded PPP auth (may disable CHAP support)
- update: app.js: getServiceString overrides should only be temporary for that request
- update: WTVClientCapabilities.js: catch exception when sent unknown configuration bits
- update: config.json: add DoNotEncrypt flags to http and https
- update: app.js: add ability to override service flags when using getServiceString
- update: app.js: add ability to disable 'wtv-star' while keeping 'wtv-*'
- update: app.js: add internal header 'minisrv-use-carriage-return', set to 'false' to disable `\r` in headers
- implement bf0app flashrom functionality
- update: actually fix wtv-1800:/preregister and include tellyscripts
- fix: app.js: Use \r\n, fix connections= service setting
- update: config.json: fix some service flags that were misset
- Add ServiceFlags.txt: brief description of wtv-service flags
- update: Moved tellyscripts to wtv-1800:/preregister
- update: fixed bug where "send_tellyscript was undefined"
- update: initial work on bf0app flashrom support (incomplete)
- add wtv-1800:/offer-open-isp-suggest for dreamcast clients
- fix: wtv-tricks:/info was not updated to use new ClientSessionData structure
- update: app.js: add special filtering for Dreamcast clients
- update: change default service logos
- minor update: app.js: fix found file path in log on windows
- update: WTVClientCapabilities.js: allow setting flags to false, to prevent potential issue with changing cap flags
- update: add 'hasCap(flag)' function to WTVClientSessionData for easier client-capabilities checking (see wtv-home/home.js for an example)
- update: add isMiniBrowser() to WTVClientSessionData for easier detection of MiniBrowser.
- update: add 'setIRCNick()' function to WTVClientSessionData for ease of use
- update: add primative getMaxUsernameLength() to overcome username limitation in older builds
- update: wtv-chat:/home template
- update: app.js: add logging errors to file
- 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
- feature: add SSID whitelist/blacklist as well as IP based SSID auth
- Add user_config_README.md
- Update user_config.example.json
- Update README.md
- update: wtv-1800:/finish-prereg: send tellyscript on relogin if tellyscripts are enabled, and wtv-script-id == 0 (no tellyscript)
- Allow definition of custom ServiceVault paths
- feature: app.js: add `bind_ip` option to specify an IP to bind to, instead of `0.0.0.0`
- feature: custom service logos and better wtv-home:/splash
- wtvsec: use initial key for ticket signing
- update: initial work for future ability to update wtv-ticket to client
- update: wtv-flashrom: use zefie server only if file does not exist locally (allows both zefie server roms and local roms)
- update: wtv-flashrom:/get-lc2-path: experimental 'Cancel Update' button
- fix: wtv-tricks:/blastcache: return_to was not unescaped
- wtvsec: use initial key for tickets
- fix: throw proper error if wtv-update:/sync called without arguments
- feature: Support to route all HTTP proxied requests over a SOCKS proxy (eg Tor or VPN)
- feature: Psuedo-HTTPS (WebTV can now visit HTTPS URLs via proxy, but
we do not use SSL encryption when sending back to the WebTV)
- fix: header issue with login-stage-two.js
- fix: encrypted request headers were shown despite verbosity level
- update: wtv-update/sync: allow multiple groups in sync diskmap, fix md5 comparsion
- update: wtv-home:/home: added connection speed
- Renamed processSSID to filterSSID
- Documented and rewrote some functions
- update wtv-home:/home: "Ultra Willies" no longer selected by default
- update: allow socket timeout definition via config
- fix: fixed reading of POST DATA from SECURE ON request
- experiment with OISP and WNI tellyscripts
- enhancement: Support UserServiceVault
- update: enable Download-o-Rama style updates. MSNTV DealerDemo included as a demo
- fix: reported verbosity levels
- fix: In some cases SSID was not filtered
- fix: could not read service folders/files that had urlescape'd characters in them
- update: change config variable name, allow user override (user_config.json)
- update user-config example
- Clean up session info into a class