2015-04-23 16:53:33 +02:00
|
|
|
/**
|
|
|
|
* Module name: Food
|
|
|
|
* Description: recipe search
|
|
|
|
*/
|
|
|
|
|
|
|
|
var _ = require('underscore')._,
|
|
|
|
request = require('request');
|
|
|
|
|
|
|
|
var food = function(dbot) {
|
|
|
|
this.commands = {
|
2015-04-23 16:56:13 +02:00
|
|
|
'~recipe': function(event) {
|
2015-04-23 16:53:33 +02:00
|
|
|
request.get('http://food2fork.com/api/search', {
|
|
|
|
'qs': {
|
|
|
|
'key': this.config.api_key,
|
2015-04-23 17:00:56 +02:00
|
|
|
'q': event.input[1]
|
2015-04-23 16:53:33 +02:00
|
|
|
},
|
|
|
|
'json': true
|
|
|
|
}, function(error, response, body) {
|
|
|
|
if(_.isObject(body) && _.has(body, 'recipes') && body.recipes.length > 0) {
|
|
|
|
var num = _.random(0, body.recipes.length - 1),
|
|
|
|
recipe = body.recipes[num];
|
|
|
|
|
|
|
|
event.reply(dbot.t('recipe', {
|
|
|
|
'title': recipe.title,
|
|
|
|
'link': recipe.source_url
|
|
|
|
}));
|
|
|
|
} else {
|
|
|
|
event.reply(dbot.t('no_recipe'));
|
|
|
|
}
|
|
|
|
}.bind(this));
|
|
|
|
}
|
|
|
|
};
|
2015-04-23 16:56:47 +02:00
|
|
|
this.commands['~recipe'].regex = [/^recipe (.+)$/, 2];
|
2015-04-23 17:11:45 +02:00
|
|
|
|
|
|
|
this.listener = function(event) {
|
|
|
|
var match = event.message.match(new RegExp(dbot.config.name + ': what should i (have|eat|make)\\??( for dinner)?\\??', 'i'));
|
|
|
|
if(match) {
|
|
|
|
request.get('http://food2fork.com/api/search', {
|
|
|
|
'qs': {
|
|
|
|
'key': this.config.api_key,
|
|
|
|
},
|
|
|
|
'json': true
|
|
|
|
}, function(error, response, body) {
|
|
|
|
if(_.isObject(body) && _.has(body, 'recipes') && body.recipes.length > 0) {
|
|
|
|
var num = _.random(0, body.recipes.length - 1),
|
|
|
|
recipe = body.recipes[num];
|
|
|
|
|
|
|
|
event.reply('You should make ' + recipe.title + '. See: ' + recipe.source_url);
|
|
|
|
}
|
|
|
|
}.bind(this));
|
|
|
|
}
|
|
|
|
};
|
2015-04-23 16:53:33 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
exports.fetch = function(dbot) {
|
|
|
|
return new food(dbot);
|
|
|
|
};
|