(GravatarRule): Accept URL in addition to

the name.
(AddGravatar): Add homepage if available.
(GravatarNewGetSummary): Use the regular expression variable.
This commit is contained in:
Alex Schroeder
2011-02-12 21:44:57 +00:00
parent 314b726793
commit 3b75c79600

View File

@@ -12,28 +12,31 @@
# You should have received a copy of the GNU General Public License along with
# this program. If not, see <http://www.gnu.org/licenses/>.
$ModulesDescription .= '<p>$Id: gravatar.pl,v 1.2 2010/10/09 23:27:09 as Exp $</p>';
$ModulesDescription .= '<p>$Id: gravatar.pl,v 1.3 2011/02/12 21:44:57 as Exp $</p>';
use Digest::MD5 qw(md5_hex);
push(@MyRules, \&GravatarRule);
push(@MyInitVariables, \&AddGravatar);
# Same as in mail.pl
$CookieParameters{mail} = '';
my $gravatar_regexp = "\\[\\[gravatar:(?:$FullUrlPattern)?:?([^\n:]+):([0-9a-f]+)\\]\\]";
push(@MyRules, \&GravatarRule);
sub GravatarRule {
if ($bol && m!\G\[\[gravatar:([^\n:]+):([0-9a-f]+)\]\]!gc) {
my $gravatar = "http://www.gravatar.com/avatar/$2";
my $name = FreeToNormal($1);
return $q->div({-class=>"portrait gravatar"},
$q->p(ScriptLink($name,
$q->img({-src=>$gravatar,
-class=>'portrait',
-alt=>''}),
'newauthor', ''),
$q->br(),
GetPageLink($name)));
if ($bol && m!\G$gravatar_regexp!cog) {
my $url = $1;
my $gravatar = "http://www.gravatar.com/avatar/$3";
my $name = FreeToNormal($2);
$url = ScriptUrl($name) unless $url;
return $q->span({-class=>"portrait gravatar"},
$q->p($q->a({-href=>$url,
-class=>'newauthor'},
$q->img({-src=>$gravatar,
-class=>'portrait',
-alt=>''})),
$q->br(),
GetPageLink($name)));
}
return undef;
}
@@ -54,6 +57,8 @@ sub GravatarNewGetCommentForm {
return $html;
}
push(@MyInitVariables, \&AddGravatar);
sub AddGravatar {
my $aftertext = GetParam('aftertext');
my $mail = GetParam('mail');
@@ -61,9 +66,10 @@ sub AddGravatar {
$mail =~ s/[ \t]+$//;
my $gravatar = md5_hex(lc($mail));
my $username = GetParam('username');
my $homepage = GetParam('homepage');
if ($aftertext && $mail && $aftertext !~ /^\[\[gravatar:/) {
SetParam('aftertext',
"[[gravatar:$username:$gravatar]]\n$aftertext");
"[[gravatar:$homepage:$username:$gravatar]]\n$aftertext");
}
}
@@ -72,6 +78,6 @@ sub AddGravatar {
sub GravatarNewGetSummary {
my $summary = GravatarOldGetSummary(@_);
$summary =~ s/^\[\[gravatar:([^\n:]+):([0-9a-f]+)\]\] *//;
$summary =~ s/^$gravatar_regexp *//o;
return $summary;
}