[PATCHv5 3/3] gitweb: gravatar url cache
From: Giuseppe Bilotta <hidden>
Date: 2016-06-15 22:46:59
Subsystem:
the rest · Maintainer:
Linus Torvalds
Views which contain many occurrences of the same email address (e.g. shortlog view) benefit from not having to recalculate the MD5 of the email address every time. --- gitweb/gitweb.perl | 14 ++++++++++++-- 1 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl
index 6e807fe..10ca0fe 100755
--- a/gitweb/gitweb.perl
+++ b/gitweb/gitweb.perl@@ -3249,6 +3249,17 @@ sub git_print_header_div { "\n</div>\n"; } +our %gravatar_url_cache = (); + +sub gravatar_url { + my $email = lc shift; + my $size = shift; + $gravatar_url_cache{$email} ||= + "http://www.gravatar.com/avatar.php?gravatar_id=" . + Digest::MD5::md5_hex($email) . "&size="; + return $gravatar_url_cache{$email} . $size; +} + # Insert an avatar for the given $email at the given $size if the feature # is enabled. sub git_get_avatar {
@@ -3258,8 +3269,7 @@ sub git_get_avatar { my $size = $avatar_size{$params{'size'}} || $avatar_size{'default'}; my $url = ""; if ($git_gravatar_enabled) { - $url = "http://www.gravatar.com/avatar.php?gravatar_id=" . - Digest::MD5::md5_hex(lc $email) . "&size=$size"; + $url = gravatar_url($email, $size); } # Currently only gravatars are supported, but other forms such as # picons can be added by putting an else up here and defining $url
--
1.6.3.rc1.192.gdbfcb