aboutsummaryrefslogtreecommitdiff
path: root/idalius.pl
diff options
context:
space:
mode:
Diffstat (limited to 'idalius.pl')
-rwxr-xr-xidalius.pl15
1 files changed, 10 insertions, 5 deletions
diff --git a/idalius.pl b/idalius.pl
index 8f82535..b8fb78a 100755
--- a/idalius.pl
+++ b/idalius.pl
@@ -109,10 +109,10 @@ sub drop_priv {
# This differs from antiflood.pm in that it is used only for when users have
# triggered a response from the bot.
sub strike_add {
- my $strike_count = 15;
- my $strike_period = 30;
+ my $strike_count = 14;
+ my $strike_period = 45;
- my ($nick) = @_;
+ my ($nick, $channel) = @_;
my $now = time();
push @{$laststrike{$nick}}, $now;
if (@{$laststrike{$nick}} >= $strike_count) {
@@ -120,6 +120,7 @@ sub strike_add {
my $first = @{$laststrike{$nick}}[0];
if ($now - $first <= $strike_period) {
log_info "Ignoring $nick because of command flood";
+ $irc->yield(privmsg => $channel => "$nick: I'm ignoring you now, you've caused me to talk too much");
push @{$config{ignore}}, $nick;
}
}
@@ -181,7 +182,7 @@ sub irc_public {
if ($stripped_what =~ s/^$config{prefix}//) {
$output = run_command($stripped_what, $who, $where);
$irc->yield(privmsg => $where => $output) if $output;
- strike_add $nick if $output;
+ strike_add($nick, $channel) if $output;
}
for my $module (@plugin_list) {
@@ -189,8 +190,8 @@ sub irc_public {
if ($module->can("message")) {
$output = $module->message(\&log_info, $irc->nick_name, $who, $where, $what, $stripped_what, $irc);
}
- strike_add $nick if $output;
$irc->yield(privmsg => $where => $output) if $output;
+ strike_add($nick, $channel) if $output;
}
return;
@@ -294,6 +295,10 @@ sub irc_msg {
$irc->yield(privmsg => $nick => "Syntax: topic <channel> <topic>");
}
}
+ if ($what =~ /^who are you ignoring/) {
+ my $ignores = join ", ", @{$config{ignore}};
+ $irc->yield(privmsg => $nick => "I am ignoring: $ignores");
+ }
if ($what =~ /^mode\s/) {
my ($rest) = $what =~ /^mode\s+(.*)?$/;
if ($rest) {