const WTVFlashrom = require("./WTVFlashrom.js"); var wtvflashrom; var flashrom_info; request_is_async = true; if (!request_headers.query.path) { var errpage = doErrorPage(400); headers = errpage[0]; data = errpage[1]; } else { var wtvflashrom = new WTVFlashrom(service_vaults, service_name, minisrv_config.services[service_name].use_zefie_server); var request_path = unescape(request_headers.query.path); // read 512 bytes of rom flashrom_info = wtvflashrom.getFlashRom(request_path, function (data, headers = null) { processLC2DownloadPage(request_headers.query.path, data, (request_headers.query.numparts || null)); }, 512); } async function processLC2DownloadPage(path, flashrom_info, numparts = null) { var flashrom_numparts = null; if (numparts != null) flashrom_numparts = parseInt(numparts); if (!flashrom_numparts) flashrom_numparts = parseInt(flashrom_info.message.substring(flashrom_info.message.length - 4).replace(/\D/g, '')); if (!flashrom_info.is_last_part) { flashrom_info.next_rompath = flashrom_info.next_rompath.replace("get-by-path", "get-lc2-page").replace("&raw=true", "&numparts=" + parseInt(flashrom_numparts)); } if (!flashrom_info.part_number || !flashrom_info.is_last_part || !flashrom_info.rompath || !flashrom_info.next_rompath || !flashrom_info.is_bootrom) { headers = `200 OK Content-type: text/html` data = ` Updating

Updating now
Your WebTV Unit is being
updated automatically.

This will take a while, and
then you can use your WebTV again. `; if (flashrom_info.is_bootrom && flashrom_info.part_number == 16) { data += `

The system will pause for about 30 seconds at the end of this update. Please do not interrupt the system during this time. ` } data += `






${flashrom_info.message}

`; } else { var errpage = doErrorPage(400) headers = errpage[0]; data = errpage[1]; } sendToClient(socket, headers, data); }