~ignorechannel and ~unignorechannel commands in [#190]

This commit is contained in:
reality 2013-01-27 17:18:38 +00:00
parent 7cf2d051ad
commit 4a64928fd6
2 changed files with 68 additions and 3 deletions

View File

@ -2,7 +2,8 @@
* Module Name: Ignore
* Description: Handles commands in which users can choose to ignore listeners
* and commands from certain modules. It also populates the JSBot instance with
* this information, since that actually performs the ignorance.
* this information, since that actually performs the ignorance. Also provides
* commands for moderators to choose the bot to ignore certain channels.
*/
var _ = require('underscore')._;
@ -69,15 +70,64 @@ var ignore = function(dbot) {
event.reply(dbot.t('invalid_unignore', { 'user': event.user }));
}
}
},
'~ignorechannel': function(event) {
var channel = ((event.params[1] == '@') ? event.channel.name : event.params[1]);
var module = event.params[2];
// Ignoring the value of 'ignorable' at the moment
if(_.include(dbot.config.moduleNames, module)) {
if(!_.has(dbot.db.ignores, channel)) dbot.db.ignores[channel] = [];
if(!_.include(dbot.db.ignores[channel], module)) {
dbot.db.ignores[channel].push(module);
dbot.instance.ignoreTag(channel, module);
event.reply(dbot.t('ignoring_channel', {
'module': module,
'channel': channel
})e;
} else {
event.reply(dbot.t('already_ignoring_channel', {
'module': module,
'channel': channel
}));
}
} else {
event.reply(dbot.t('module_not_exist', { 'module': module }));
}
},
'~unignorechannel': function(event) {
var channel = ((event.params[1] == '@') ? event.channel.name : event.params[1]);
var module = event.params[2];
if(!_.has(dbot.db.ignores, channel)) dbot.db.ignores[channel] = [];
if(_.include(dbot.db.ignores[channel], module)) {
dbot.db.ignores[channel] = _.without(dbot.db.ignores[channel], module);
dbot.instance.removeIgnore(channel, module);
event.reply(dbot.t('unignoring_channel', {
'module': module,
'channel': channel
}));
} else {
event.reply(dbot.t('not_ignoring_channel', {
'module': module,
'channel': channel
}));
}
}
};
commands['~ignorechannel'].access = 'moderator';
commands['~unignorechannel'].access = 'moderator';
this.commands = commands;
this.onLoad = function() {
dbot.instance.clearIgnores();
_.each(dbot.db.ignores, function(ignores, user) {
_.each(dbot.db.ignores, function(ignores, item) {
_.each(ignores, function(ignore) {
dbot.instance.ignoreTag(user, ignore);
dbot.instance.ignoreTag(item, ignore);
}, this);
}, this);
};

View File

@ -40,5 +40,20 @@
"spanish": "{user}: Ya no ignoras {module}.",
"na'vi": "{user}: Nga terìng mikyun {module}ne set",
"welsh": "{user}: Ddim yn anwybyddu {module} bellach"
},
"ignoring_channel": {
"english": "Now ignoring {module} in {channel}"
},
"already_ignoring_channel": {
"english": "Already ignoring {module} in {channel}"
},
"module_not_exist": {
"english": "{module} isn't loaded or doesn't exist."
},
"unignoring_channel": {
"english": "No longer ignoring {module} in {channel}"
},
"not_ignoring_channel": {
"english": "{module} wasn't being ignored in {channel}"
}
}