- 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
53 lines
1.6 KiB
JavaScript
53 lines
1.6 KiB
JavaScript
var minisrv_service_file = true;
|
|
|
|
// willie is just a graphical frontend to a list of ROMs
|
|
// the rest of the scripts should work if you manually link to a ROM, and actually have it.
|
|
|
|
request_is_async = true;
|
|
|
|
var proxy_query = '';
|
|
if (request_headers.query.flash) delete request_headers.query.flash;
|
|
if (request_headers.query.vflash) delete request_headers.query.vflash;
|
|
if (request_headers.query.pflash) delete request_headers.query.pflash;
|
|
|
|
for (const [key, value] of Object.entries(request_headers.query)) {
|
|
proxy_query += "&" + key + "=" + escape(value);
|
|
}
|
|
|
|
if (!minisrv_config.services[service_name].use_zefie_server) {
|
|
proxy_query += "&minisrv_local_mode=true";
|
|
}
|
|
|
|
var options = {
|
|
host: "wtv.zefie.com",
|
|
path: "/willie.php?minisrv=true&service_name="+escape(service_name)+"&pflash=" + session_data.get("wtv-client-rom-type") + proxy_query,
|
|
timeout: 5000,
|
|
method: 'GET'
|
|
}
|
|
|
|
|
|
headers = "200 OK\nContent-type: text/html";
|
|
const req = https.request(options, function (res) {
|
|
data = '';
|
|
res.on('data', d => {
|
|
data += d;
|
|
});
|
|
|
|
res.on('error', function (e) {
|
|
if (!minisrv_config.config.debug_flags.quiet) console.log(" * Upstream Ultra Willies HTTP Error:", e);
|
|
var errpage = wtvshared.doErrorPage(400)
|
|
headers = errpage[0];
|
|
data = errpage[1];
|
|
sendToClient(socket, headers, data);
|
|
});
|
|
|
|
res.on('end', function () {
|
|
if (!minisrv_config.config.debug_flags.quiet) console.log(" * Upstream Ultra Willies HTTP Response:", res.statusCode, res.statusMessage);
|
|
if (request_headers.query.clear_cache) {
|
|
headers += "\nwtv-expire-all: "+service_name;
|
|
}
|
|
sendToClient(socket, headers, data);
|
|
});
|
|
});
|
|
req.end();
|