var util = require('util'), exec = require('child_process').exec; var archiver = require('../archiver') module.exports=(io,data)=>{ // download all website assets /** * wget --mirror --convert-links --adjust-extension --page-requisites * --no-parent http://example.org * --mirror – Makes (among other things) the download recursive. * --convert-links – convert all the links (also to stuff like CSS stylesheets) to relative, so it will be suitable for offline viewing. * --adjust-extension – Adds suitable extensions to filenames (html or css) depending on their content-type. * --page-requisites – Download things like CSS style-sheets and images required to properly display the page offline. * --no-parent – When recurring do not ascend to the parent directory. It useful for restricting the download to only a portion of the site. */ let website =""; const child = exec(`wget -mkEpnp --no-if-modified-since ${data.website}`); // read stdout from the current child. child.stderr.on("data",(response)=>{ if(response.startsWith("Resolving ")) { website= response.substring(response.indexOf('Resolve ')+11,response.indexOf(' (')) } io.emit(data.token,{progress:response}) }) child.stderr.on('close',(response)=>{ io.emit(data.token,{progress:"Converting"}) archiver(website,io,data) }) }