@worldsky/weather
Version:
weather forcast
51 lines (50 loc) • 2.03 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
var axios_1 = __importDefault(require("axios"));
var colors_1 = __importDefault(require("colors"));
var commander_1 = require("commander");
var chineseWeek_1 = __importDefault(require("./chineseWeek"));
commander_1.program.option("-c, --city [name]", "Add city name");
commander_1.program.option("-a, --all", "Show forecast weather");
commander_1.program.parse();
var options = commander_1.program.opts();
if (process.argv.slice(2).length === 0) {
commander_1.program.outputHelp(colors_1.default.red);
process.exit();
}
var WEATHER_INFO_API = "https://restapi.amap.com/v3/weather/weatherInfo";
var APP_WEATHER_KEY = "67eff89f49eee2dc498cccfd756b8ed7";
var STATUS_CODE_SUCCESS = "1";
axios_1.default
.get("".concat(WEATHER_INFO_API, "?key=").concat(APP_WEATHER_KEY, "&city=").concat(options.city, "&extensions=").concat(options.all ? "all" : "base"))
.then(function (response) {
if (response.status === 200) {
// console.log(JSON.stringify(response.data));
if (response.data.status === STATUS_CODE_SUCCESS) {
console.log(colors_1.default.green(response.data.info));
var data = [];
if (options.all) {
data = response.data.forecasts[0].casts;
}
else {
data = response.data.lives;
}
data.forEach(function (item) {
item.week = (0, chineseWeek_1.default)(~~item.week);
item.daytemp = item.daytemp + "°C";
item.nighttemp = item.nighttemp + "°C";
});
console.table(data);
}
else {
console.log(colors_1.default.red(JSON.stringify(response.data)));
}
}
else {
console.log(colors_1.default.red(response.statusText));
}
});