55 */
66
77// Dependencies
8- var fs = require ( 'fs' ) ,
9- exec = require ( 'child_process' ) . exec ,
8+ var exec = require ( 'child_process' ) . exec ,
109 debug = require ( 'debug' ) ( 'openframe:downloader' ) ,
11- url = require ( 'url' ) ,
1210 artworkDir = '/tmp' ,
13- request = require ( 'request' ) ;
11+ http = require ( 'http- request' ) ;
1412
1513// unused at present
1614function _mkdirp ( dir ) {
@@ -25,55 +23,27 @@ function _mkdirp(dir) {
2523/**
2624 * Download a file using HTTP get.
2725 *
28- * TODO: use Promises instead of a callback.
29- *
3026 * @param {String } file_url
3127 * @param {String } file_output_name
3228 */
3329function downloadFile ( file_url , file_output_name , cb ) {
3430 return new Promise ( function ( resolve , reject ) {
3531 var file_name = file_output_name ,
36- file_path = artworkDir + '/' + file_name ,
37- file = fs . createWriteStream ( file_path ) ;
38-
39- request . get ( file_url )
40- . on ( 'response' , function ( res ) {
41- // create file write stream
42- res . pipe ( file ) ;
43-
44- res . on ( 'end' , function ( ) {
45- // go on with processing
46- file . close ( function ( ) {
47- if ( cb ) cb ( ) ;
48- resolve ( file ) ;
49- } ) ;
50- } ) ;
51-
52- res . on ( 'error' , ( e ) => {
53- debug ( `Got error: ${ e . message } ` ) ;
54- reject ( e ) ;
55- } ) ;
56- } ) . on ( 'error' , ( e ) => {
57- debug ( `Got error: ${ e . message } ` ) ;
58- reject ( e ) ;
59- } ) ;
60-
61- // http.get(file_url, function(res) {
62- // res.pipe(file);
63- // file.on('finish', function() {
64- // file.close(function() {
65- // if (cb) cb();
66- // resolve(file);
67- // }); // close() is async, call cb after close completes.
68- // });
69- // res.on('error', (e) => {
70- // debug(`Got error: ${e.message}`);
71- // reject(e);
72- // });
73- // }).on('error', (e) => {
74- // debug(`Got error: ${e.message}`);
75- // reject(e);
76- // });
32+ file_path = artworkDir + '/' + file_name ;
33+
34+ // simplified download using http-request module
35+ http . get ( {
36+ url : file_url ,
37+ progress : function ( current , total ) {
38+ debug ( 'downloaded %d bytes from %d' , current , total ) ;
39+ }
40+ } , file_path , function ( err , res ) {
41+ if ( err ) {
42+ reject ( err ) ;
43+ return ;
44+ }
45+ resolve ( res . file ) ;
46+ } ) ;
7747 } ) ;
7848
7949}
0 commit comments