From: Don Armstrong Date: Thu, 14 Mar 2013 17:11:05 +0000 (-0700) Subject: add Debbugs configuration support for libravatar X-Git-Tag: release/2.6.0~311^2 X-Git-Url: https://git.donarmstrong.com/?p=debbugs.git;a=commitdiff_plain;h=3087ff28c2299057a5e00ee49f025cf736b4b30f add Debbugs configuration support for libravatar --- diff --git a/Debbugs/CGI/Bugreport.pm b/Debbugs/CGI/Bugreport.pm index 56a8b40..59d88b0 100644 --- a/Debbugs/CGI/Bugreport.pm +++ b/Debbugs/CGI/Bugreport.pm @@ -141,7 +141,10 @@ sub display_entity { my $head_field = $head->get($_); next unless defined $head_field and $head_field ne ''; if ($_ eq 'From') { - push @headers,q(); + my $libravatar_url = __libravatar_url(decode_rfc1522($head_field)); + if (defined $libravatar_url and length $libravatar_url) { + push @headers,q(); + } } push @headers, qq(

$_: ) . html_escape(decode_rfc1522($head_field))."

"; } @@ -432,8 +435,11 @@ sub handle_record{ sub __libravatar_url { my ($email) = @_; + if (not defined $config{libravatar_uri} or not length $config{libravatar_uri}) { + return undef; + } ($email) = get_addresses($email); - return "http://cdn.libravatar.org/avatar/".md5_hex(lc($email))."?d=retro"; + return $config{libravatar_uri}.md5_hex(lc($email)).($config{libravatar_uri_options}//''); } diff --git a/Debbugs/Config.pm b/Debbugs/Config.pm index 87e61a2..3a6e7cf 100644 --- a/Debbugs/Config.pm +++ b/Debbugs/Config.pm @@ -364,6 +364,38 @@ Default: list_domain set_default(\%config,'bug_subscription_domain',$config{list_domain}); +=head2 CGI Options + +=over + +=item libravatar_uri + +URI to a libravatar configuration. If empty or undefined, libravatar +support will be disabled. Defaults to +http://cdn.libravatar.org/avatar/ which uses a federated Avatar system +and falls back to gravatar if necessary. + +=cut + +set_default(\%config,'libravatar_uri',"http://cdn.libravatar.org/avatar/"); + +=item libravatar_uri_options + +Options to append to the md5_hex of the e-mail. This sets the default +avatar used when an avatar isn't available. Currently defaults to +'?d=retro', which causes a bitmap-looking avatar to be displayed for +unknown e-mails. + +Other options which make sense include ?d=404, ?d=wavatar, etc. See +the API of libravatar for details. + +=cut + +set_default(\%config,'libravatar_uri_options','?d=retro'); + + +=back + =head2 Misc Options =over