summaryrefslogtreecommitdiffstats
path: root/modules/util.pl
diff options
context:
space:
mode:
authorLibravatarWilliam Heimbigner <william.heimbigner@gmail.com>2007-10-08 13:28:23 +0000
committerLibravatarWilliam Heimbigner <william.heimbigner@gmail.com>2007-10-08 13:28:23 +0000
commit917638dfdf31e26ae9115dabb5c2fe528866c549 (patch)
treed5ab13c057983bff1fac0ed64638bb105f8f03b7 /modules/util.pl
parent3790452619828dc2c5d27c13eeec7b67b3fe6eff (diff)
added a db command, improved the user set flags command, added linked channels, added a showhilights command, eliminated flooding of alerts, fixed nickspam check, added something to watch chancounts.
Diffstat (limited to 'modules/util.pl')
-rw-r--r--modules/util.pl33
1 files changed, 27 insertions, 6 deletions
diff --git a/modules/util.pl b/modules/util.pl
index a385790..4fe63ee 100644
--- a/modules/util.pl
+++ b/modules/util.pl
@@ -1,4 +1,5 @@
package ASM::Util;
+use Array::Utils qw(:all);
use warnings;
use strict;
@@ -7,6 +8,7 @@ my %oq;
%::RISKS =
(
+ 'disable'=> -1, #this isn't really an alert
'debug' => 10,
'info' => 20,
'low' => 30,
@@ -66,8 +68,22 @@ sub maxlen {
sub cs {
my ($module, $chan) = @_;
$chan = lc $chan;
- return $::channels->{channel}->{$chan} if ( defined($::channels->{channel}->{$chan}) );
- return $::channels->{channel}->{default};
+ return $::channels->{channel}->{default} unless defined($::channels->{channel}->{$chan});
+ if ( defined($::channels->{channel}->{$chan}->{link}) ) {
+ return $::channels->{channel}->{ $::channels->{channel}->{$chan}->{link} };
+ }
+ return $::channels->{channel}->{$chan};
+}
+
+sub getLink
+{
+ my ($module, $chan) = @_;
+ $chan = lc $chan;
+ my $link = $::channels->{channel}->{$chan}->{link};
+ if ( defined($link) ) {
+ return $link;
+ }
+ return $chan;
}
#this item is a stub, dur
@@ -126,15 +142,20 @@ sub flood_process {
sub getAlert {
my ($module, $c, $risk, $t) = @_;
- @_ = ();
+ my @disable = ();
+ my @x = ();
$c = lc $c;
foreach my $prisk ( keys %::RISKS) {
if ( $::RISKS{$risk} >= $::RISKS{$prisk} ) {
- push( @_, @{$::channels->{channel}->{master}->{$t}->{$prisk}} ) if defined $::channels->{channel}->{master}->{$t}->{$prisk};
- push( @_, @{cs($module, $c)->{$t}->{$prisk}} ) if defined cs($module, $c)->{$t}->{$prisk};
+ push( @x, @{$::channels->{channel}->{master}->{$t}->{$prisk}} ) if defined $::channels->{channel}->{master}->{$t}->{$prisk};
+ push( @x, @{cs($module, $c)->{$t}->{$prisk}} ) if defined cs($module, $c)->{$t}->{$prisk};
}
}
- return @_;
+ push( @disable, @{$::channels->{channel}->{master}->{$t}->{disable}} ) if defined $::channels->{channel}->{master}->{$t}->{disable};
+ push( @disable, @{cs($module, $c)->{$t}->{disable}} ) if defined cs($module, $c)->{$t}->{disable};
+ @x = unique(@x);
+ @x = array_diff(@x, @disable);
+ return @x;
}
sub commaAndify {