summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 5a371b7)
raw | patch | inline | side by side (parent: 5a371b7)
author | Giuseppe Bilotta <giuseppe.bilotta@gmail.com> | |
Mon, 29 Jun 2009 22:00:53 +0000 (00:00 +0200) | ||
committer | Junio C Hamano <gitster@pobox.com> | |
Tue, 30 Jun 2009 18:06:36 +0000 (11:06 -0700) |
Simple implementation of picon that only relies on the indiana.edu
database.
Signed-off-by: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
database.
Signed-off-by: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
gitweb/gitweb.perl | patch | blob | history |
diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl
index 4d7e4ff7a08694635f493d4910ffaa5da792e8e4..862ea99f8a67f158e370a30264627f8615dff5e0 100755 (executable)
--- a/gitweb/gitweb.perl
+++ b/gitweb/gitweb.perl
# shortlog or commit will display an avatar associated with
# the email of the committer(s) and/or author(s).
- # Currently only the gravatar provider is available, and it
- # depends on Digest::MD5. If an unknown provider is specified,
- # the feature is disabled.
+ # Currently available providers are gravatar and picon.
+ # If an unknown provider is specified, the feature is disabled.
+
+ # Gravatar depends on Digest::MD5.
+ # Picon currently relies on the indiana.edu database.
# To enable system wide have in $GITWEB_CONFIG
- # $feature{'avatar'}{'default'} = ['gravatar'];
+ # $feature{'avatar'}{'default'} = ['<provider>'];
+ # where <provider> is either gravatar or picon.
# To have project specific config enable override in $GITWEB_CONFIG
# $feature{'avatar'}{'override'} = 1;
- # and in project config gitweb.avatar = gravatar;
+ # and in project config gitweb.avatar = <provider>;
'avatar' => {
'sub' => \&feature_avatar,
'override' => 0,
our ($git_avatar) = gitweb_get_feature('avatar');
if ($git_avatar eq 'gravatar') {
$git_avatar = '' unless (eval { require Digest::MD5; 1; });
+} elsif ($git_avatar eq 'picon') {
+ # no dependencies
} else {
$git_avatar = '';
}
# given page, there's no risk for cache conflicts.
our %avatar_cache = ();
+# Compute the picon url for a given email, by using the picon search service over at
+# http://www.cs.indiana.edu/picons/search.html
+sub picon_url {
+ my $email = lc shift;
+ if (!$avatar_cache{$email}) {
+ my ($user, $domain) = split('@', $email);
+ $avatar_cache{$email} =
+ "http://www.cs.indiana.edu/cgi-pub/kinzler/piconsearch.cgi/" .
+ "$domain/$user/" .
+ "users+domains+unknown/up/single";
+ }
+ return $avatar_cache{$email};
+}
+
# Compute the gravatar url for a given email, if it's not in the cache already.
# Gravatar stores only the part of the URL before the size, since that's the
# one computationally more expensive. This also allows reuse of the cache for
my $url = "";
if ($git_avatar eq 'gravatar') {
$url = gravatar_url($email, $size);
+ } elsif ($git_avatar eq 'picon') {
+ $url = picon_url($email);
}
- # Currently only gravatars are supported, but other forms such as
- # picons can be added by putting an else up here and defining $url
+ # Other providers can be added by extending the if chain, defining $url
# as needed. If no variant puts something in $url, we assume avatars
# are completely disabled/unavailable.
if ($url) {