var _ = require('underscore')._; var api = function(dbot) { return { // Is user ignoring command/module? 'isUserIgnoring': function(server, user, item, callback) { this.internalAPI.isUserImpeded(server, user, item, 'ignores', callback); }, // Is user banned from command/module? 'isUserBanned': function(server, user, item, callback) { this.internalAPI.isUserImpeded(server, user, item, 'bans', callback); }, // Is channel ignoring module? // TODO: Command support 'isChannelIgnoring': function(server, channelName, item, callback) { var isIgnoring = false, channel = false; this.db.search('channel_ignores', { 'server': server, 'name': channel }, function(result) { channel = result; }, function(err) { if(!err && channel && _.include(channel.ignores, item)) { isIgnoring = true; } callback(isIgnoring); }); }, // Resolve a nick and return their user and ignores object 'getUserIgnores': function(server, user, callback) { dbot.api.users.resolveUser(server, user, function(user) { if(user) { this.db.read('ignores', user.id, function(err, ignores) { callback(false, user, ignores); }); } else { callback(true, null, null); } }.bind(this)); } }; } exports.fetch = function(dbot) { return api(dbot); };