summaryrefslogtreecommitdiffstats
path: root/modules/classes.pl
diff options
context:
space:
mode:
Diffstat (limited to 'modules/classes.pl')
-rw-r--r--modules/classes.pl40
1 files changed, 39 insertions, 1 deletions
diff --git a/modules/classes.pl b/modules/classes.pl
index 4fbfb94..5cafdbd 100644
--- a/modules/classes.pl
+++ b/modules/classes.pl
@@ -14,6 +14,7 @@ sub new
my $self = {};
my $tbl = {
"strbl" => \&strbl,
+ "strblnew" => \&strblnew,
"dnsbl" => \&dnsbl,
"floodqueue" => \&floodqueue,
"floodqueue2" => \&floodqueue2,
@@ -34,7 +35,8 @@ sub new
"joinmsgquit" => \&joinmsgquit,
"garbagemeter" => \&garbagemeter,
"cyclebotnet" => \&cyclebotnet,
- "banevade" => \&banevade
+ "banevade" => \&banevade,
+ "urlcrunch" => \&urlcrunch
};
$self->{ftbl} = $tbl;
bless($self);
@@ -76,6 +78,20 @@ sub joinmsgquit
return 1;
}
+sub urlcrunch
+{
+ my ($chk, $id, $event, $chan, $response) = @_;
+ return 0 unless defined($response);
+ return 0 unless ref($response);
+ return 0 unless defined($response->{_previous});
+ return 0 unless defined($response->{_previous}->{_headers});
+ return 0 unless defined($response->{_previous}->{_headers}->{location});
+ if ($response->{_previous}->{_headers}->{location} =~ /$chk->{content}/i) {
+ return 1;
+ }
+ return 0;
+}
+
sub check
{
my $self = shift;
@@ -367,6 +383,23 @@ sub strbl {
return 0;
}
+sub strblnew {
+ my ($chk, $xid, $event, $chan) = @_;
+ my $match = lc $event->{args}->[0];
+ foreach my $id (keys %{$::blacklist->{string}}) {
+ my $line = lc $::blacklist->{string}->{$id}->{content};
+ my $idx = index $match, $line;
+ if ( $idx != -1 ) {
+ my $setby = $::blacklist->{string}->{$id}->{setby};
+ $setby = substr($setby, 0, 1) . "\x02\x02" . substr($setby, 1);
+ return defined($::blacklist->{string}->{$id}->{reason}) ?
+ "id $id added by $setby because $::blacklist->{string}->{$id}->{reason}" :
+ "id $id added by $setby for no reason";
+ }
+ }
+ return 0;
+}
+
sub nick {
my ($chk, $id, $event, $chan) = @_;
if ( lc $event->{nick} eq lc $chk->{content} ) {
@@ -407,6 +440,11 @@ sub nuhg {
return 0;
}
+sub invite {
+ my ( $chk, $id, $event, $chan) = @_;
+ return 1;
+}
+
my $sfc = 0;
sub flood_add