summaryrefslogtreecommitdiff
path: root/mongo-edu.js
diff options
context:
space:
mode:
Diffstat (limited to 'mongo-edu.js')
-rw-r--r--mongo-edu.js99
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);
- }
-
});
-
}
};