diff options
author | Janik Kleinhoff <ilbelkyr@shalture.org> | 2017-04-09 20:36:44 +0000 |
---|---|---|
committer | Janik Kleinhoff <ilbelkyr@shalture.org> | 2017-04-09 20:36:44 +0000 |
commit | 62d8fcde1c6dc5be2f535f6fcffa1afd838b62bd (patch) | |
tree | 8f39f52cb215dd3efb6e30961946f61dba7c7d8e | |
parent | c259dab8b3b1b65b0d67d34465de306732ced836 (diff) | |
download | antispammeta-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.pm | 5 |
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; } |