website-downloader/wget/index.js
liushuang a3cf0aa893 init
2024-08-13 11:43:25 +08:00

36 lines
1.3 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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)
})
}