Просмотр исходного кода

Added a way of checking what part of an attack line is the nick being attacked. Looks for a nick in the line that has been referenced before, and uses that nick

sbingner 23 лет назад
Родитель
Сommit
55183a7a74
1 измененных файлов с 10 добавлено и 2 удалено
  1. 10 2
      modules/Pisg/Parser/Logfile.pm

+ 10 - 2
modules/Pisg/Parser/Logfile.pm

@@ -328,8 +328,16 @@ sub _parse_file
                 $stats->{lastvisited}{$nick} = $stats->{days};
                 $stats->{line_times}{$nick}[int($hour/6)]++;
 
-                if ($saying =~ /^($self->{cfg}->{violentwords}) (\S+)/o) {
-                    my $victim = find_alias($2);
+                if ($saying =~ /^($self->{cfg}->{violentwords}) (\S+)(.*)/o) {
+                    my $victim;
+                    unless ($victim = is_nick($2)) {
+                        foreach my $trynick (split(/\s+/, $3)) {
+                            last if ($victim = is_nick($trynick));
+                        }
+                        unless ($victim) {
+                            $victim = $2;
+                        }
+                    }
                     if (!is_ignored($victim)) {
                         $stats->{violence}{$nick}++;
                         $stats->{attacked}{$victim}++;