/** * 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); };