2018-02-16 14:17:52 +01:00
|
|
|
/**
|
|
|
|
* Module name: kill_namespam
|
|
|
|
* Description: destroy those wot hilight too many nicks at once . usually
|
|
|
|
* advertising their rubbish irc server (do not)
|
|
|
|
*/
|
|
|
|
|
|
|
|
var _ = require('underscore')._;
|
|
|
|
|
|
|
|
var kill_namespam = function(dbot) {
|
|
|
|
this.listener = function(event) {
|
|
|
|
if(event.channel == event.user) return; // return if pm
|
2018-02-16 14:19:12 +01:00
|
|
|
if(_.filter(event.message.split(' '), function(word) { return _.has(event.channel.nicks, word); }.length > this.config.sensitivity)) {
|
2018-02-16 14:17:52 +01:00
|
|
|
var message = dbot.t('namespam_act', {
|
|
|
|
'user': event.user,
|
|
|
|
'channel': event.channel,
|
|
|
|
'action': this.config.action,
|
|
|
|
'sensitivity': this.config.sensitivity
|
|
|
|
});
|
|
|
|
|
|
|
|
switch(this.config.action) {
|
2018-02-16 14:30:56 +01:00
|
|
|
case 'kickban':
|
2018-02-16 14:19:12 +01:00
|
|
|
dbot.api.kick.ban(event.server, event.host, event.channel);
|
|
|
|
dbot.api.kick.kick(event.server, event.user, message);
|
2018-02-16 14:17:52 +01:00
|
|
|
break;
|
2018-02-16 14:30:56 +01:00
|
|
|
case 'kill':
|
2018-02-16 14:17:52 +01:00
|
|
|
dbot.api.kick.kill(event.server, event.user, message);
|
|
|
|
default: break;
|
|
|
|
}
|
|
|
|
|
|
|
|
dbot.api.report.notify('spam', event.server, event.user, event.channel, message, event.host, event.user);
|
|
|
|
}
|
|
|
|
}.bind(this);
|
|
|
|
this.on = 'PRIVMSG';
|
|
|
|
};
|
|
|
|
|
|
|
|
exports.fetch = function(dbot) {
|
|
|
|
return new kill_namespam(dbot);
|
|
|
|
};
|