]> git.donarmstrong.com Git - debbugs.git/commitdiff
add Debbugs configuration support for libravatar
authorDon Armstrong <don@donarmstrong.com>
Thu, 14 Mar 2013 17:11:05 +0000 (10:11 -0700)
committerDon Armstrong <don@donarmstrong.com>
Thu, 14 Mar 2013 17:11:05 +0000 (10:11 -0700)
Debbugs/CGI/Bugreport.pm
Debbugs/Config.pm

index 56a8b4023ee9983208fe40f916fcc2884ba5b66c..59d88b07f5dedbdcb112574881a2085f084405be 100644 (file)
@@ -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(<img src=").__libravatar_url(decode_rfc1522($head_field)).q(">);
+                       my $libravatar_url = __libravatar_url(decode_rfc1522($head_field));
+                       if (defined $libravatar_url and length $libravatar_url) {
+                           push @headers,q(<img src=").$libravatar_url.q(">);
+                       }
                    }
                   push @headers, qq(<p><span class="header">$_:</span> ) . html_escape(decode_rfc1522($head_field))."</p>";
              }
@@ -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}//'');
 }
 
 
index 87e61a2f54de7efabac7526b12fda83529065a79..3a6e7cf366290b4e2f9e83ce8294488f2f38ce73 100644 (file)
@@ -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