filedownloader

1.2.7 • Public • Published

filedownloader

npm license github-issues

a small module for easy downloading using the power of curl combined with node js

nodei.co

travis-status stars forks

Note

this module requires curl to be present in your system path. if not please check those links

Linux Windows Mac Os

Quick start

    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 from
  • saveas Filename to be saved as ex( audio.mp3)
  • saveto Folder to be saved in
  • deleteIfExists 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

Controlling The Download

you can pause the downloading by :

    Dl.pause();

and you can resume it by:

    Dl.resume();

Setting event handlers

'start': download started

The start event is emitted just after the download starts

    Dl.on("start", function(){
       console.log("Download started") 
    });

'progress': progress information

The progress Event is emitted with an object argument with the following keys:

  • dataWritten: size of downloaded data in bytes
  • filesize: size of the target file in bytes
  • progress: an estimation of the progress percentage
  • speed: an estimation of the download speed
    Dl.on("progress", function(progress){
       console.log('Downloaded: ' + progress.pregress + '%'); 
    });

'error': error occurred

The error event is emitted when an error occurs

    Dl.on("error", function(err){
       console.log('Some error occurred:' + err); 
    });

'end': Downloading finished

The end event is emitted when Downloading has finished.

    Dl.on("end", function(){
       console.log('Download finished'); 
    });

What's new

error event when status code is different than 200

Tests

npm test

Dependencies

  • 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

Contributing

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!

Author

Oussama Barkouki

License

Package Sidebar

Install

npm i filedownloader

Weekly Downloads

5

Version

1.2.7

License

GPL-3.0

Last publish

Collaborators

  • oussama1598