From 645cc36c05909b0ffd0ec9423e3633c8a1b8673b Mon Sep 17 00:00:00 2001 From: William Heimbigner Date: Thu, 7 Jan 2016 19:55:36 -0700 Subject: Use Tie::CPHash to make %::sn and %::sc case-insensitiveish. Clean up commands.xml and fix some bugs Add clone detection Minimize some excessive warnings Greatly improve syncing speed --- lib/ASM/Classes.pm | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'lib/ASM/Classes.pm') diff --git a/lib/ASM/Classes.pm b/lib/ASM/Classes.pm index 2fae035..1f0e3ef 100644 --- a/lib/ASM/Classes.pm +++ b/lib/ASM/Classes.pm @@ -37,13 +37,26 @@ sub new "garbagemeter" => \&garbagemeter, "cyclebotnet" => \&cyclebotnet, "banevade" => \&banevade, - "urlcrunch" => \&urlcrunch + "urlcrunch" => \&urlcrunch, + "cloning" => \&cloning }; $self->{ftbl} = $tbl; bless($self); return $self; } +sub cloning { + my ($chk, $id, $event, $chan, $rev) = @_; + my $max = int($chk->{content}); + my @nicks = grep {($::sn{$_}->{host} eq $event->{host}) && (lc $chan ~~ $::sn{$_}->{mship})} keys %::sn; + # It's lines like these that make me love Perl no matter how much it drives dwfreed up a tree. + # Understanding how that line works is simple and is left as an exercise to the reader. + if ($#nicks >= $max) { + return ASM::Util->commaAndify(@nicks); + } + return 0; +} + sub garbagemeter { my ($chk, $id, $event, $chan, $rev) = @_; my @cut = split(/:/, $chk->{content}); -- cgit v1.2.3