diff options
author | Eric Wong <e@80x24.org> | 2017-06-23 20:23:07 +0000 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2017-06-23 22:28:46 +0000 |
commit | 1a8eb0a43c68e64b77fdd3c4ebd977a1ab88e71b (patch) | |
tree | d60151d9613f6603b4cca5f62410eaac2a344dba /lib/PublicInbox/Hval.pm | |
parent | bde2d8c8de65a4d6b06e8d7365f504f2d8db90a6 (diff) | |
download | public-inbox-1a8eb0a43c68e64b77fdd3c4ebd977a1ab88e71b.tar.gz |
We will also treat all known list addresses as non-obfuscated. By setting publicinbox.noObfuscate in ~/.public-inbox/config, this will allow users to disable address obfuscation on a per-domain or per-address basis.
Diffstat (limited to 'lib/PublicInbox/Hval.pm')
-rw-r--r-- | lib/PublicInbox/Hval.pm | 15 |
1 files changed, 14 insertions, 1 deletions
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; |