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