summaryrefslogtreecommitdiffstats
path: root/modules/inspect.pl
diff options
context:
space:
mode:
authorLibravatarWilliam Heimbigner <william.heimbigner@gmail.com>2007-06-28 23:48:48 +0000
committerLibravatarWilliam Heimbigner <william.heimbigner@gmail.com>2007-06-28 23:48:48 +0000
commit6907da0a5da3d45a91c3ac4893e5b890200b27eb (patch)
tree5a61df15a30b6d0aefa6c6e72e7eab2d8f03de1f /modules/inspect.pl
parent638d9eae9e63755e26f9843985597e6f1c7c5f8e (diff)
modularized stuff, fixed alert logic, simplified stuff, updated TODO
Diffstat (limited to 'modules/inspect.pl')
-rw-r--r--modules/inspect.pl19
1 files changed, 10 insertions, 9 deletions
diff --git a/modules/inspect.pl b/modules/inspect.pl
index 666de29..fc66215 100644
--- a/modules/inspect.pl
+++ b/modules/inspect.pl
@@ -3,8 +3,7 @@ use strict;
use List::Util qw(first);
-#my @ignored = ();
-@::ignored = ();
+%::ignored = ();
sub inspect {
our ($conn, $event) = @_;
@@ -23,9 +22,9 @@ sub inspect {
$rev = join('.', reverse(unpack('C4', $iaddr))).'.' if (defined $iaddr);
%monx = defined($::channels->{channel}->{master}->{event}) ? %{$::channels->{channel}->{master}->{event}} : ();
## NB: isn't there a better way to do this with grep, somehow?
- foreach ( @::ignored ) {
- return if (lc $event->{nick} eq $_);
- }
+# foreach ( @::ignored ) {
+# return if (lc $event->{nick} eq $_);
+# }
foreach $chan ( @{$event->{to}} ) {
next unless $chan =~ /^#/;
%conx = defined($::channels->{channel}->{lc $chan}->{event}) ? %{$::channels->{channel}->{lc $chan}->{event}} : ();
@@ -44,7 +43,7 @@ sub inspect {
delete $dct{$_} foreach @override;
foreach $chan (@{$event->{to}}) {
foreach $id ( keys %dct ) {
- sql_record($chan, $event->{nick}, $event->{user}, $event->{host}, $::sn{lc $event->{nick}}->{gecos}, $dct{$id}{risk}, $id, $dct{$id}{reason});
+ $::db->record($chan, $event->{nick}, $event->{user}, $event->{host}, $::sn{lc $event->{nick}}->{gecos}, $dct{$id}{risk}, $id, $dct{$id}{reason});
$txtz = "$dct{$id}{risk} risk threat: ".
"Detected $event->{nick} $dct{$id}{reason} in $chan ";
$txtz = $txtz . commaAndify(getAlert(lc $chan, $dct{$id}{risk}, 'hilights')) if (getAlert(lc $chan, $dct{$id}{risk}, 'hilights'));
@@ -61,9 +60,11 @@ sub inspect {
$conn->schedule(int($dct{$id}{time}), sub { print "Timer called!\n"; o_send($lconn,$lunmode); });
}
}
- $conn->privmsg($_, $txtz) foreach getAlert($chan, $dct{$id}{risk}, 'msgs');
- push(@::ignored, lc $event->{nick});
- $conn->schedule(15, sub { @::ignored = grep { lc $_ ne lc $nick } @::ignored; });
+ unless (defined($::ignored{lc $event->{nick}}) && ($::ignored{lc $event->{nick}} >= $::RISKS{$dct{$id}{risk}})) {
+ $conn->privmsg($_, $txtz) foreach getAlert($chan, $dct{$id}{risk}, 'msgs');
+ $::ignored{lc $nick} = $::RISKS{$dct{$id}{risk}};
+ $conn->schedule(15, sub { delete($::ignored{lc $nick})});
+ }
}
}
}