]> Sergey Matveev's repositories - public-inbox.git/blobdiff - lib/PublicInbox/Hval.pm
allow admins to configure non-obfuscated addresses/domains
[public-inbox.git] / lib / PublicInbox / Hval.pm
index 2379b918514d398763fd3cf17a1151e60e1b5ed1..800508861bcdb28dc435d121d7d1074d6814f2fd 100644 (file)
@@ -91,6 +91,19 @@ sub prurl {
 # ․ · and ͺ were also candidates:
 #   https://public-inbox.org/meta/20170615015250.GA6484@starla/
 # However, • was chosen to make copy+paste errors more obvious
-sub obfuscate_addrs ($) { $_[0] =~ s/(\S+@[^\.]+)\./$1•/g }
+sub obfuscate_addrs ($$) {
+       my $ibx = $_[0];
+       my $re = $ibx->{-no_obfuscate_re}; # regex of domains
+       my $addrs = $ibx->{-no_obfuscate}; # { adddress => 1 }
+       $_[1] =~ s/([\w\.\+=\-]+\@([\w\-]+\.[\w\.\-]+))/
+               my ($addr, $domain) = ($1, $2);
+               if ($addrs->{$addr} || ((defined $re && $domain =~ $re))) {
+                       $addr;
+               } else {
+                       $addr =~ s!([^\.]+)\.!$1•!g;
+                       $addr
+               }
+               /sge;
+}
 
 1;