2015-01-09 01:53:14 +01:00
|
|
|
/**
|
|
|
|
* Module Name: rome2rio
|
|
|
|
* Description: Maps and ting
|
|
|
|
*/
|
|
|
|
var request = require('request'),
|
|
|
|
_ = require('underscore')._;
|
|
|
|
|
|
|
|
var gmaps = function(dbot) {
|
|
|
|
this.ApiRoot = 'http://free.rome2rio.com/api/1.2/json/';
|
|
|
|
this.commands = {
|
|
|
|
'~from': function(event) {
|
|
|
|
var from = event.input[1],
|
|
|
|
to = event.input[2];
|
|
|
|
|
|
|
|
request.get({
|
|
|
|
'url': this.ApiRoot + 'Search',
|
|
|
|
'qs': {
|
|
|
|
'key': this.config.api_key,
|
|
|
|
'oName': from,
|
|
|
|
'dName': to,
|
2015-01-09 02:43:20 +01:00
|
|
|
'currencyCode': event.rProfile.currency || 'gbp'
|
2015-01-09 01:53:14 +01:00
|
|
|
},
|
|
|
|
'json': true
|
|
|
|
}, function(err, response, body) {
|
2015-01-09 02:11:47 +01:00
|
|
|
if(!err && body && _.has(body, 'routes') && _.has(body.routes[0], 'duration') && _.has(body.routes[0], 'indicativePrice')) {
|
2015-01-09 01:53:14 +01:00
|
|
|
var route = body.routes[0];
|
|
|
|
event.reply('If you left right now, it would take you ' + Math.floor(route.duration / 60) + ' hours and ' +
|
2015-01-09 02:43:20 +01:00
|
|
|
(route.duration % 60) + ' minutes to get the ' + Math.floor(route.distance) + 'KM from ' + from + ' to ' + to + ', and cost you about ' +
|
|
|
|
route.indicativePrice.price + route.indicativePrice.currency);
|
2015-01-09 01:53:14 +01:00
|
|
|
} else {
|
|
|
|
event.reply('Apparently one cannot get from ' + from + ' to ' + to + ' using public transport. Do you accept the challenge?');
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
}
|
|
|
|
};
|
|
|
|
this.commands['~from'].regex = [/^from (.*) to (.*)/, 3];
|
|
|
|
};
|
|
|
|
|
|
|
|
exports.fetch = function(dbot) {
|
|
|
|
return new gmaps(dbot);
|
|
|
|
};
|