From 55d7c08395e1072bf4f316b7eb970eba871f3e54 Mon Sep 17 00:00:00 2001 From: Antoni Kepinski Date: Mon, 29 Jan 2018 11:15:50 +0100 Subject: [PATCH 1/3] Update package.json --- package.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 9187812..51c66b7 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,9 @@ }, "dependencies": { "cli-table": "^0.3.1", - "imdb-api": "^2.2.1" + "imdb-api": "^3.1.2", + "chalk": "^2.3.0", + "ora": "^1.3.0" }, "repository": { "type": "git", From 309f89c7586c70294033d8cf8ef259c7af002218 Mon Sep 17 00:00:00 2001 From: Antoni Kepinski Date: Mon, 29 Jan 2018 11:35:11 +0100 Subject: [PATCH 2/3] Update index.js --- index.js | 32 +++++++++++++++++++++++++++----- 1 file changed, 27 insertions(+), 5 deletions(-) diff --git a/index.js b/index.js index 589c5a3..ebc00df 100755 --- a/index.js +++ b/index.js @@ -2,6 +2,11 @@ var imdb = require('imdb-api') var Table = require('cli-table') +var ora = require('ora') +var chalk = require('chalk') + +var spinner = ora() +var arg = process.argv[2] // extracted fields var fields = [ @@ -16,35 +21,52 @@ var fields = [ 'votes' ] +if (arg === '-h' || arg === '--help') { // Display help message + console.log(` + ${chalk.yellow('imdb-cli')} - IMDB cli interface to retrive movies info. + + Usage: ${chalk.cyan('imdb-cli')} ${chalk.magenta('')} + + Example: ${chalk.cyan('imdb-cli')} ${chalk.magenta('the martian')} + + `) + process.exit(1) +} + // istantiate table var table = new Table() var title = process.argv.slice(2).join(' ') if (!title.length) { - console.log('Please provide a valid Title.') + console.log(chalk.red('Please provide a valid Title!')) process.exit(1) } -console.log('Searching for:', title) +spinner.text = `Searching for: ${title}` +spinner.start() // Start ora spinner // get movie info from IMDB -imdb.get(title) +imdb.get(title, {apiKey: '88c0823e'}) .then(function (data) { if (data.type === 'movie') { + spinner.clear() var filteredData = cleanProps(data) Object.keys(filteredData).forEach(function (i) { var row = {} row[i] = filteredData[i] table.push(row) + spinner.stop() }) console.log(table.toString()) } else { - console.log('No movie found!') + spinner.stop() + console.log(chalk.red('Movie not found!')) } }) .catch(function (err) { - console.log(err) + spinner.stop() + console.log(chalk.red(err)) }) /* util functions */ From a5a00285191faec70c8b4e0457c92cb16d877924 Mon Sep 17 00:00:00 2001 From: Antoni Kepinski Date: Mon, 29 Jan 2018 11:37:41 +0100 Subject: [PATCH 3/3] Update index.js --- index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.js b/index.js index ebc00df..7ec4cce 100755 --- a/index.js +++ b/index.js @@ -47,7 +47,7 @@ spinner.text = `Searching for: ${title}` spinner.start() // Start ora spinner // get movie info from IMDB -imdb.get(title, {apiKey: '88c0823e'}) +imdb.get(title, {apiKey: 'YOUR_API_KEY'}) //Get one here: http://www.omdbapi.com/apikey.aspx .then(function (data) { if (data.type === 'movie') { spinner.clear()