a small module for easy downloading using the power of curl combined with node js
this module requires curl to be present in your system path. if not please check those links
npm install filedownloader
Then:
var Downloader = require("filedownloader");
var Dl = new Downloader({
url: "FILEURL"
}).on("progress", function (progress){
console.log(progress);
});
The Downloader function accepts an object that can take:
url
url to Download fromsaveas
Filename to be saved as ex( audio.mp3)saveto
Folder to be saved indeleteIfExists
Delete file if it does exist (default: false)resume
Resume file if it's not completed, if false will delete the file and start it again (default: true)
The progress event will return :
{ progress: '1.3', dataWritten: 376072, filesize: '29828970', speed: 'byte/s'} //just an example of the ouput
you can pause the downloading by :
Dl.pause();
and you can resume it by:
Dl.resume();
The start
event is emitted just after the download starts
Dl.on("start", function(){
console.log("Download started")
});
The progress
Event is emitted with an object argument with the following keys:
dataWritten
: size of downloaded data in bytesfilesize
: size of the target file in bytesprogress
: an estimation of the progress percentagespeed
: an estimation of the download speed
Dl.on("progress", function(progress){
console.log('Downloaded: ' + progress.pregress + '%');
});
The error
event is emitted when an error occurs
Dl.on("error", function(err){
console.log('Some error occurred:' + err);
});
The end
event is emitted when Downloading has finished.
Dl.on("end", function(){
console.log('Download finished');
});
Switched from request to curl +Some bugs are fixed
npm test
- content-disposition: Create and parse Content-Disposition header
- del: Delete files and folders
- file-exists: Check if filepath exists and is a file
- mkdirp: Recursively mkdir, like
mkdir -p
- q: A library for promises (CommonJS/Promises/A,B,D)
- request: Simplified HTTP request client.
- underscore: JavaScript's functional programming helper library.
- urlencode: encodeURIComponent with charset
- valid-url: URI validation functions
Contributions welcome; Please submit all pull requests the against master branch. If your pull request contains JavaScript patches or features, you should include relevant unit tests. Please check the Contributing Guidelines for more details. Thanks!
Oussama Barkouki
- GPL-3.0 : http://opensource.org/licenses/GPL-3.0