X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/c8cf2d1ed791e56d6b3c0191c0a9ba8c8ce59868..d5f6fdd8a9cc07147da7d3a67b95bc42133bf744:/IkiWiki/Plugin/comments.pm?ds=inline diff --git a/IkiWiki/Plugin/comments.pm b/IkiWiki/Plugin/comments.pm index df20e7b96..9fb81d15a 100755 --- a/IkiWiki/Plugin/comments.pm +++ b/IkiWiki/Plugin/comments.pm @@ -167,7 +167,6 @@ sub preprocess { my $commentip; my $commentauthor; my $commentauthorurl; - my $commentauthoravatar; my $commentopenid; if (defined $params{username}) { $commentuser = $params{username}; @@ -188,16 +187,6 @@ sub preprocess { $commentauthor = $commentuser; } - - eval 'use Libravatar::URL'; - if (! $@) { - if (defined $commentopenid) { - $commentauthoravatar = libravatar_url(openid => $commentopenid, https => $ENV{HTTPS}); - } - elsif (my $email = IkiWiki::userinfo_get($commentuser, 'email')) { - $commentauthoravatar = libravatar_url(email => $email, https => $ENV{HTTPS}); - } - } } else { if (defined $params{ip}) { @@ -211,7 +200,7 @@ sub preprocess { $commentstate{$page}{commentip} = $commentip; $commentstate{$page}{commentauthor} = $commentauthor; $commentstate{$page}{commentauthorurl} = $commentauthorurl; - $commentstate{$page}{commentauthoravatar} = $commentauthoravatar; + $commentstate{$page}{commentauthoravatar} = $params{avatar}; if (! defined $pagestate{$page}{meta}{author}) { $pagestate{$page}{meta}{author} = $commentauthor; } @@ -450,6 +439,12 @@ sub editcomment ($$) { } } + my $avatar=getavatar($session->param('name')); + if (defined $avatar && length $avatar) { + $avatar =~ s/"/"/g; + $content .= " avatar=\"$avatar\"\n"; + } + my $subject = $form->field('subject'); if (defined $subject && length $subject) { $subject =~ s/"/"/g; @@ -573,6 +568,31 @@ sub editcomment ($$) { exit; } +sub getavatar ($) { + my $user=shift; + + my $avatar; + eval q{use Libravatar::URL}; + if (! $@) { + my $oiduser = eval { IkiWiki::openiduser($user) }; + my $https=defined $config{url} && $config{url}=~/^https:/; + + if (defined $oiduser) { + eval { + $avatar = libravatar_url(openid => $user, https => $https); + } + } + if (! defined $avatar && + (my $email = IkiWiki::userinfo_get($user, 'email'))) { + eval { + $avatar = libravatar_url(email => $email, https => $https); + } + } + } + return $avatar; +} + + sub commentmoderation ($$) { my $cgi=shift; my $session=shift;