summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatarJanik Kleinhoff <ilbelkyr@shalture.org>2017-04-09 20:36:44 +0000
committerLibravatarJanik Kleinhoff <ilbelkyr@shalture.org>2017-04-09 20:36:44 +0000
commit62d8fcde1c6dc5be2f535f6fcffa1afd838b62bd (patch)
tree8f39f52cb215dd3efb6e30961946f61dba7c7d8e
parentc259dab8b3b1b65b0d67d34465de306732ced836 (diff)
downloadantispammeta-62d8fcde1c6dc5be2f535f6fcffa1afd838b62bd.tar.bz2
antispammeta-62d8fcde1c6dc5be2f535f6fcffa1afd838b62bd.tar.xz
antispammeta-62d8fcde1c6dc5be2f535f6fcffa1afd838b62bd.tar.zst
nickspam check: require *different* nicks
Things like this will no longer trigger the bot: <+/Ukikie> Ukikie Ukikie Ukikie Ukikie Ukikie Ukikie Ukikie Ukikie Ukikie Ukikie. <+/AntiSpamMeta> High risk threat [#antispammeta] - Ukikie - nickspamming;
-rw-r--r--lib/ASM/Classes.pm5
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/ASM/Classes.pm b/lib/ASM/Classes.pm
index 88eafd0..669020e 100644
--- a/lib/ASM/Classes.pm
+++ b/lib/ASM/Classes.pm
@@ -5,6 +5,7 @@ use warnings;
use Text::LevenshteinXS qw(distance);
use Data::Dumper;
use Regexp::Wildcards;
+use List::Util qw(uniq);
no if $] >= 5.017011, warnings => 'experimental::smartmatch';
my %sf = ();
@@ -291,8 +292,8 @@ sub nickspam {
if ( length $event->{args}->[0] >= int($cut[0]) ) {
my %users = %{$::sc{lc $chan}->{users}};
my %x = map { $_=>$_ } keys %users;
- my @uniq = grep( $x{$_}, split( /[^a-zA-Z0-9_\\|`[\]{}^-]+/ , lc $event->{args}->[0]) );
- return 1 if ( @uniq >= int($cut[1]) );
+ my @nicks = grep( $x{$_}, split( /[^a-zA-Z0-9_\\|`[\]{}^-]+/ , lc $event->{args}->[0]) );
+ return 1 if ( uniq(@nicks) >= int($cut[1]) );
}
return 0;
}