X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=lib%2FPublicInbox%2FHval.pm;h=8d36fc2ba6a38189193360e0059647688346eabf;hb=cfb0a03a8966c71820e4536eaf31265ea79397e6;hp=2379b918514d398763fd3cf17a1151e60e1b5ed1;hpb=ef9ce6f2dfc9fcbb91e3cec0b7a2b7f7e359be5d;p=public-inbox.git diff --git a/lib/PublicInbox/Hval.pm b/lib/PublicInbox/Hval.pm index 2379b918..8d36fc2b 100644 --- a/lib/PublicInbox/Hval.pm +++ b/lib/PublicInbox/Hval.pm @@ -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•!; + $addr + } + /sge; +} 1;