From 62d8fcde1c6dc5be2f535f6fcffa1afd838b62bd Mon Sep 17 00:00:00 2001 From: Janik Kleinhoff Date: Sun, 9 Apr 2017 20:36:44 +0000 Subject: 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; --- lib/ASM/Classes.pm | 5 +++-- 1 file 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; } -- cgit v1.2.3