kulmapaikka-ircbot/plugins/getWeather.js
2015-10-02 20:14:31 +03:00

57 lines
1.3 KiB
JavaScript

var penaapi = require('./../penaapi')();
var Promise = require('promise');
var iconCodeToText = {
'01d': 'selkeää',
'02d': 'puolipilvistä',
'03d': 'pilvistä',
'04d': 'pilvipeite rakoilee',
'09d': 'sadekuuroja',
'10d': 'vesisadetta',
'11d': 'ukkostaa',
'13d': 'lumisadetta',
'50d': 'sumua',
'01n': 'selkeää',
'02n': 'puolipilvistä',
'03n': 'pilvistä',
'04n': 'pilvipeite rakoilee',
'09n': 'sadekuuroja',
'10n': 'vesisadetta',
'11n': 'ukkostaa',
'13n': 'lumisadetta',
'50n': 'sumua'
};
module.exports = function(config) {
var owmapi = require('./../owmapi')(config);
var getTemperatureString = function(owmCityIds) {
var promise = new Promise(function(resolve, reject) {
Promise.all([
owmapi.getTemperatures(owmCityIds),
penaapi.getTemperatures()
]).then(function(results) {
var resultString = '';
// OWM
results[0].list.forEach(function(data) {
var city = data.name;
var temp = (data.main.temp-273.15).toFixed(1);
var code = data.weather[0].icon;
resultString += '' + city + ' ('+temp+' °C, '+iconCodeToText[code]+'), ';
});
if(results[1].length > 0) {
var temp = Number(results[1][0].temp).toFixed(1);
resultString += 'Aura (' + temp + ' °C)';
}
resolve(resultString);
});
});
return promise;
};
return getTemperatureString;
};