rocket-cli
Version:
Pure command line tool to replace Baidu('百毒') NetDisk or other NetDisk with this COOL shit!
47 lines (45 loc) • 1.52 kB
JavaScript
var Promise = require('promise');
var qiniuWrapper = require('../provider/Qiniu');
var ora = require('ora');
var db = require('../db/index');
var download = require('download-to-file');
var path = require('path');
module.exports = {
handle: function (key, options) {
return new Promise(function (resolve, reject) {
db.getInstance().find({
$or: [
{file: key},
{'cloud.hash': key}
]
}, function (err, docs) {
if (err || docs === null || docs.length === 0) {
return reject('No match file find');
} else {
var file = docs[0];
var destDir = options.dest ? path.resolve(options.dest, file.file) : file.path;
var spinner = ora('[PULL] ' + file.file + ' from cloud').start();
qiniuWrapper.init()
.then(function () {
qiniuWrapper.download(file.cloud.key)
.then(function (res) {
download(res, destDir, function (err) {
if (err) {
spinner.fail();
return reject(err);
} else {
spinner.succeed();
return resolve('Download file to ' + destDir + ' succeed! \n');
}
});
})
.catch(function (err) {
spinner.fail();
return reject('Download file failed!');
});
});
}
});
});
}
};