dbot/modules/food/food.js

59 lines
1.9 KiB
JavaScript
Raw Normal View History

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 17:13:02 +02:00
this.on = 'PRIVMSG';
2015-04-23 16:53:33 +02:00
};
exports.fetch = function(dbot) {
return new food(dbot);
};