jadm
Version:
71 lines (64 loc) • 3.07 kB
JavaScript
var fs = require('fs');
var ProgressBar = require('progress');
var co = require('co');
var prompt = require('co-prompt');
var program = require('commander');
const axios = require('axios');
const ora = require('ora');
const chalk = require('chalk');
const figlet = require('figlet');
program
.arguments('<data>')
// .option('-u, --username <username>', 'The user to authenticate as')
// .option('-p, --password <password>', 'The user\'s password')
.action(function(data) {
co(function *() {
console.log(chalk.green.underline.bold("username is poppy / password is poppy"));
var username = yield prompt('username: ');
var password = yield prompt.password('password: ');
if (username == "poppy" && password == "poppy") {
data = data.toLowerCase();
const getPwns = async () => {
try {
return await axios.get('http://api.openweathermap.org/data/2.5/forecast?q=' + data + '&units=metric&APPID=0b38ff1f9a3b7d41f3c382d42d099d03')
} catch (error) {
console.error(chalk.red("Invalid city name. Try again."));
process.exit();
}
}
const countPwns = async () => {
const pwns = await getPwns()
const spinner = ora().start();
setTimeout(() => {
spinner.color = 'yellow';
spinner.text = 'Loading rainbows';
}, 10);
if (pwns.data.message) {
console.log(chalk.red.underline.bold('You chose : '));
console.log(figlet.textSync(data, {
font: 'Ghost',
horizontalLayout: 'default',
verticalLayout: 'default'
}));
console.log(chalk.green.underline.bold(pwns.data.list[0].dt_txt.slice(0,10)));
console.log(chalk.green.underline.bold(pwns.data.list[0].dt_txt.slice(11,19)));
console.log(chalk.green.underline.bold('Here are some information about the weather in ' + pwns.data.city.name + ' :'));
console.log(chalk.bgRgb(15, 100, 204).inverse('Average temperature is ' + pwns.data.list[0].main.temp + ' C°'));
console.log(chalk.underline.bgBlue('The lowest temperature possible is ' + pwns.data.list[0].main.temp_min + ' C°'));
console.log(chalk.underline.bgRed('The highest temperature possible is ' + pwns.data.list[0].main.temp_max + ' C°'));
console.log(chalk.hex('#00eeff')('Wind speed is ' + pwns.data.list[0].wind.speed + ' m/s'));
console.log(chalk.bgHex('#c300ff').inverse('Forecast : ' + pwns.data.list[0].weather[0].description));
process.exit();
} else {
console.error(chalk.red("OpenWeatherMap API could not be reached."));
process.exit();
}
}
countPwns()
} else {
console.error("ERROR AUTHENTICATING.");
}
});
})
.parse(process.argv);