From 870adf3bbf459e3f234fb06322b750582ab47912 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Wed, 30 Jan 2008 02:39:17 -0500 Subject: move openiduser function to the openid plugin --- IkiWiki/Plugin/openid.pm | 27 +++++++++++++++++++++++++++ IkiWiki/Plugin/recentchanges.pm | 2 +- 2 files changed, 28 insertions(+), 1 deletion(-) (limited to 'IkiWiki/Plugin') diff --git a/IkiWiki/Plugin/openid.pm b/IkiWiki/Plugin/openid.pm index e8dbe964f..de31f38ee 100644 --- a/IkiWiki/Plugin/openid.pm +++ b/IkiWiki/Plugin/openid.pm @@ -164,4 +164,31 @@ sub getobj ($$) { #{{{ ); } #}}} +package IkiWiki; + +# This is not used by this plugin, but this seems the best place to put it. +# Used elsewhere to pretty-display the name of an openid user. +sub openiduser ($) { #{{{ + my $user=shift; + + if ($user =~ m!^https?://! && + eval q{use Net::OpenID::VerifiedIdentity; 1} && !$@) { + my $oid=Net::OpenID::VerifiedIdentity->new(identity => $user); + my $display=$oid->display; + # Convert "user.somehost.com" to "user [somehost.com]". + if ($display !~ /\[/) { + $display=~s/^(.*?)\.([^.]+\.[a-z]+)$/$1 [$2]/; + } + # Convert "http://somehost.com/user" to "user [somehost.com]". + if ($display !~ /\[/) { + $display=~s/^https?:\/\/(.+)\/([^\/]+)$/$2 [$1]/; + } + $display=~s!^https?://!!; # make sure this is removed + eval q{use CGI 'escapeHTML'}; + error($@) if $@; + return escapeHTML($display); + } + return; +} + 1 diff --git a/IkiWiki/Plugin/recentchanges.pm b/IkiWiki/Plugin/recentchanges.pm index 8ceb2dfbf..337fb7ac5 100644 --- a/IkiWiki/Plugin/recentchanges.pm +++ b/IkiWiki/Plugin/recentchanges.pm @@ -82,7 +82,7 @@ sub store ($$$) { #{{{ # See if the committer is an openid. $change->{author}=$change->{user}; - my $oiduser=IkiWiki::openiduser($change->{user}); + my $oiduser=eval { IkiWiki::openiduser($change->{user}) }; if (defined $oiduser) { $change->{authorurl}=$change->{user}; $change->{user}=$oiduser; -- cgit v1.2.3