gslides-maker
Version:
Generate Google Slides from Wikipedia
64 lines (57 loc) • 2.12 kB
JavaScript
Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }var _readlinesync = require('readline-sync'); var _readlinesync2 = _interopRequireDefault(_readlinesync);
var _log = require('../log');
var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);
var _wikipedia = require('../helpers/wikipedia');
class userInput {
constructor ( data) {;this.data = data;
this.data = data
}
/**
* Starts the user input step
*
* @returns {Promise.<*>}
*/
async start () {
console.log(_log.bold.call(void 0, 'gslides-maker v0.5 [beta]'))
this.data.input.search = this.getSearch()
const provider = await _wikipedia.wikipedia.call(void 0, { articleName: 'any', lang: 'en' })
const arrayOfArticles = await provider.search(this.data.input.search)
this.data.input.articleName = await this.getArticle(arrayOfArticles)
this.data.input.lang = await this.getLang()
}
/**
* Get search term
*
* @returns {String}
*/
getSearch () {
const search = _readlinesync2.default.question(`${_chalk2.default.bold.green('?')} What do you want to research about? `)
return search
}
/**
* Choose from article options
*
* @param {Promise.<Array.<String>>} fetchArticles Article options
* @returns {Promise.<String>}
*/
async getArticle (articles) {
const selectedIndex = _readlinesync2.default.keyInSelect(articles, `${_chalk2.default.bold.green('>')} Choose an Wikipedia article: `)
if (selectedIndex === -1) {
process.exit(0)
}
const selectedArticle = articles[selectedIndex]
return selectedArticle
}
/**
* Select lang of the article
*
* @returns {Promise.<String>}
*/
async getLang () {
let answer = _readlinesync2.default.question(`${_chalk2.default.bold.green('?')} What is the language of the article [en]? `)
if (!answer) {
answer = 'en'
}
return answer
}
} exports.default = userInput;
;