forked from GitHub/dbot
61 lines
2.0 KiB
JavaScript
61 lines
2.0 KiB
JavaScript
|
/**
|
||
|
* Module name: Food
|
||
|
* Description: recipe search
|
||
|
*/
|
||
|
|
||
|
var _ = require('underscore')._,
|
||
|
request = require('request');
|
||
|
|
||
|
var food = function(dbot) {
|
||
|
this.commands = {
|
||
|
'~recipe': function(event) {
|
||
|
request.get('http://food2fork.com/api/search', {
|
||
|
'qs': {
|
||
|
'key': this.config.api_key,
|
||
|
'q': event.input[1]
|
||
|
},
|
||
|
'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));
|
||
|
}
|
||
|
};
|
||
|
this.commands['~recipe'].regex = [/^recipe (.+)$/, 2];
|
||
|
|
||
|
this.listener = function(event) {
|
||
|
var match = event.message.match(new RegExp(dbot.config.name + ': what should i (have|eat|make)\\??( for (dinner|lunch|breakfast))?\\??', 'i'));
|
||
|
if(match) {
|
||
|
var page = _.random(0, 200);
|
||
|
request.get('http://food2fork.com/api/search', {
|
||
|
'qs': {
|
||
|
'key': this.config.api_key,
|
||
|
'page': page
|
||
|
},
|
||
|
'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(event.user + ': You should make ' + recipe.title + '. See: ' + recipe.source_url);
|
||
|
}
|
||
|
}.bind(this));
|
||
|
}
|
||
|
}.bind(this);
|
||
|
this.on = 'PRIVMSG';
|
||
|
};
|
||
|
|
||
|
exports.fetch = function(dbot) {
|
||
|
return new food(dbot);
|
||
|
};
|