/**
 * Module Name: weather
 * Description: weather and ting
 */
var request = require('request'),
    _ = require('underscore')._;

var weather = function(dbot) {
    this.ApiRoot = 'http://api.openweathermap.org/data/2.5/';
    this.commands = {
        '~weather': function(event) {
            var city = event.input[1];

            request.get({
                'url': this.ApiRoot + 'weather',
                'qs': {
                    'q': city,
                    'units': 'metric',
                    'APPID': this.config.api_key
                },
                'json': true
            }, function(err, response, body) {
                if(!err && body && _.has(body, 'cod') && body.cod === 200) {
                    event.reply('['+(body.name ? body.name +', ':'')+body.sys.country+']' + ' Condition: ' + body.weather[0].description + ' | Temp: ' + Math.round(body.main.temp) + 'C/'+Math.round(body.main.temp* 9 / 5 + 32)+'F | Humidity: ' + body.main.humidity + '% | Wind Speed: ' + body.wind.speed + 'KM/H');
                } else {
                    event.reply('There is no weather in ' + city);
                }
            });
        }
    };
    this.commands['~weather'].regex = [/^weather (.*)/, 2];
};

exports.fetch = function(dbot) {
    return new weather(dbot);
};