diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/initialize.js | 12 | ||||
-rw-r--r-- | lib/login.js | 10 |
2 files changed, 14 insertions, 8 deletions
diff --git a/lib/initialize.js b/lib/initialize.js index 6adb6cd..9585859 100644 --- a/lib/initialize.js +++ b/lib/initialize.js @@ -57,13 +57,15 @@ module.exports = function run(profile, argv) { function processList(data, profile) { - if (data.length) { + if (!data.length) { + if (profile.noCourses) { return console.log('i'.red + ' ' + checkName(profile) + ' ' + profile.noCourses); } + return console.log('i'.red + ' ' + checkName(profile) + ' ' + 'Could not locate any courses in your profile. Have you registered already?\n'); + } - classes[0].message = checkName(profile) + ' . Found ' + data.length + ' Course'+ ((data.length > 1)? 's' : '') + '. Select:'; - classes[0].choices = data; - return currentList(); + classes[0].message = checkName(profile) + ' . Found ' + data.length + ' Course'+ ((data.length > 1)? 's' : '') + '. Select:'; + classes[0].choices = data; + currentList(); - } } function currentList() { diff --git a/lib/login.js b/lib/login.js index 4715bc3..8091168 100644 --- a/lib/login.js +++ b/lib/login.js @@ -94,14 +94,16 @@ module.exports = { request({ url: url + '/dashboard', jar: jar }, function get(err, res, body) { if (err !== null) { return callback(err, null); } + bar.tick(); + if (res.statusCode === 200) { var list = [], $ = cheerio.load(body), - current = $('section.my-courses-courses').children(), - - link = $(current).filter('.media').children().find('h3').children(); + link = $(current).filter('.media').children().find('h3').children(), + noCourses = $('section[class="empty-dashboard-message"]').text(), + findNewCourses = $('section[class="empty-dashboard-message"] a').attr('href'); bar.tick(); @@ -111,6 +113,8 @@ module.exports = { bar.tick(); + if (noCourses) { currentProfile.noCourses = noCourses.trim().split('\n').map(function items(item) { return item.replace(/ +/g, ' '); }).join('') + ' at ' + url + findNewCourses + '.\n'; } + callback(null, list, currentProfile); } |