diff options
Diffstat (limited to 'mongo-edu.js')
-rw-r--r-- | mongo-edu.js | 99 |
1 files changed, 6 insertions, 93 deletions
diff --git a/mongo-edu.js b/mongo-edu.js index 6876ce9..ed6dfd1 100644 --- a/mongo-edu.js +++ b/mongo-edu.js @@ -8,10 +8,11 @@ var pkg = require('./package'), mdbvideos = require('./lib/login'), - videoHandler = require('./lib/videos'), - validate = require('./lib/validate'), configure = require('./lib/configure'), optArgs = require('./lib/options'), + validate = require('./lib/validate'), + videoHandler = require('./lib/videos'), + initialize = require('./lib/initialize'), yargs = optArgs.build(), url = require('url'), path = require('path'), @@ -24,11 +25,10 @@ exports.create = function start() { 'use strict'; - console.log('\n[ ' + pkg.name.toUpperCase() + ' ' + pkg.version + ' ]\n'); var argv = yargs.argv, proxyDetails = {}, - lookFor = ((!argv.h)? 'Videos' : 'Handouts'), isWin = /^win/.test(process.platform), slash = (isWin) ? '\\' : '/'; + isWin = /^win/.test(process.platform), slash = (isWin) ? '\\' : '/'; if (argv.help) { return yargs.showHelp(); } @@ -89,7 +89,7 @@ exports.create = function start() { configure(argv, function conf(err) { if (err !== null) { throw err; } - if (!argv.proxy || argv.h) { return run(profile); } + if (!argv.proxy || argv.h) { return initialize(profile, argv); } proxyDetails = url.parse(argv.proxy); @@ -107,97 +107,10 @@ exports.create = function start() { if (data) { console.log('i'.magenta + ' ' + data); } if (argv.test) { return videoHandler.checkProxyDownload(argv); } - run(profile); - }); - - }); - } - - function run(profile) { - - inquirer.prompt(profile, function prompt(answers) { - - var list = [{ type: 'list', name: 'url', message: '', choices: [] }], classes = list, - - check = [{ type: 'checkbox', message: '', name: 'videos', choices: [], - validate: function validate(answer) { - if ( answer.length < 1 ) { return 'You must choose at least one option.'; } - return true; - } - }]; - - mdbvideos.init(answers, argv, function get(err, data) { - if (err !== null) { throw err; } - - if (data.length) { - - classes[0].message = 'Found ' + data.length + ' Course'+ ((data.length > 1)? 's' : '') + '. Select:'; - classes[0].choices = data; - return currentList(); - - } - + initialize(profile, argv); }); - function currentList() { - inquirer.prompt(classes, function prompt(answers) { - - mdbvideos.getList(answers, argv, function get(err, data, pass) { - if (err !== null) { throw err; } - - if (data.length) { - - if (pass) { return showDetails(err, data); } - - list[0].message = 'Found ' + data.length + ' List' + ((data.length > 1)? 's' : '') + '. Select:'; - list[0].choices = data; - - return currentVideos(); - - } else { - if (pass) { return console.log('i'.red + ' Looks like the course is not yet available or has already ended. ' + - lookFor + ' list is not available.\n\nCheck the start/end date for selected course.\n'); } - } - - return console.log('i'.red + ' Unable to locate any ' + lookFor.toLowerCase() + ' lists in the wiki. Are ' + - lookFor.toLowerCase() + ' list present in the wiki?' + - ((lookFor === 'Videos') ? ' Try to add ' + '--cw'.green + ' to switch and search on courseware instead.' : '')); - }); - - }); - } - - function currentVideos() { - - inquirer.prompt(list, function prompt(answers) { - - mdbvideos.listVideos(answers, argv, function get(err, data, pass) { - if (err !== null) { throw err; } - if (!pass) { return videoHandler.details(data, argv, showDetails); } - showDetails(err, data); - }); - - }); - } - - function showDetails(err, data) { - if (err !== null) { throw err; } - - if (data.length) { - check[0].message = 'Select From ' + (data.length - 2) + ' ' + lookFor + '. Download:'; - check[0].choices = data; - - return inquirer.prompt(check, function prompt(answers) { - videoHandler.download(answers, data, argv); - }); - - } - - console.log('i'.red + ' Could not locate any ' + lookFor.toLowerCase() + '.'); process.exit(0); - } - }); - } }; |