ipod-widget-server/lib/weatherData.js
2019-07-15 23:31:05 +02:00

40 lines
923 B
JavaScript

const { EventEmitter } = require('events');
const axios = require('axios');
const log = require('loglevel');
const AACHEN = 3247449;
const STEINFURT = 2828105;
class WeatherData extends EventEmitter {
constructor() {
super();
}
get initial() {
return { aachen: null };
}
start() {
this.fetch();
setInterval(() => {
this.fetch();
}, 5*60000);
}
fetch() {
Promise.all([
axios.get(`https://api.openweathermap.org/data/2.5/weather?id=${AACHEN}&units=metric&appid=f16fb438a43a12fb3347ca17937649be`).catch(err => log.error(err.config.url, err.message)),
]).then(resp => {
let aachen = null;
if (resp[0] != undefined) {
aachen = resp[0].data.main.temp + "°C";
}
this.emit("data", { aachen });
});
}
}
module.exports = new WeatherData();