X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/ea166ca334934a5950ee4756a7291fc69961e77c..7b57bb843f2fe8b7901f7b9b10c95597527d4093:/IkiWiki/Plugin/comments.pm diff --git a/IkiWiki/Plugin/comments.pm b/IkiWiki/Plugin/comments.pm index bccb977e3..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,17 +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}) { @@ -212,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; } @@ -229,7 +217,7 @@ sub preprocess { my $url=$params{url}; eval q{use URI::Heuristic}; - if (! $@) { + if (! $@) { $url=URI::Heuristic::uf_uristr($url); } @@ -451,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; @@ -574,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;