X-Git-Url: http://www.wagner.pp.ru/gitweb/?a=blobdiff_plain;f=lib%2FVJournal%2FProviderList.pm;fp=lib%2FVJournal%2FProviderList.pm;h=c4374e713309de9bee7215faa2c803666a112f24;hb=200e065d42299c1d605d503fb9c30fe3728bf0da;hp=6ce8e81e39aec16add79013ea6333967ec84faaf;hpb=c18ba47bd2daa9239244e087a9967f24ceffc200;p=oss%2Fvjournal.git diff --git a/lib/VJournal/ProviderList.pm b/lib/VJournal/ProviderList.pm index 6ce8e81..c4374e7 100644 --- a/lib/VJournal/ProviderList.pm +++ b/lib/VJournal/ProviderList.pm @@ -1,21 +1,26 @@ package VJournal::ProviderList; use VJournal::Session; use Carp; -use constant PROVIDER_LIST_FILE="providers.lst"; +use constant PROVIDER_LIST_FILE=>"providers.lst"; sub new { my $class=shift; - if (!exists $VJournal::Session::config{-statedir}) - croak("VJournal::Session config is not loaded"); + croak("VJournal::Session config is not loaded") + if (!exists $VJournal::Session::config{-statedir}); my $f; - open - $f,"<",$VJournal::Session::config{-statedir}."/".PROVIDER_LIST_FILE or croak("cannot find provider list file"); + open $f,"<",$VJournal::Session::config{-statedir}."/".PROVIDER_LIST_FILE or croak("cannot find provider list file"); my $self={}; + SITE: while (<$f>) { + next SITE if /^\s*#/; chomp; - my ($id,$name,$format,$translate_underscore,$format2,$urlasname}=split (":") - $self->{$id}={-id=>$id,-name=>$name,$format=>[$format,($format2?$format2:())], - -translate_underscore=>$translate_underscore,-url_as_name=>$urlasname}; + my ($id,$name,$format,$translate_underscore,$format2,$urlasname)=split(":"); + next SITE unless $id=~/\w+/; + $self->{$id}={-id=>$id, + -name=>$name, + -format=>[$format,($format2?$format2:())], + -translate_underscore=>$translate_underscore, + -url_as_name=>$urlasname}; } close $f; return bless $self,$class; @@ -24,33 +29,33 @@ sub new { sub menu { my $self=shift; my @out; - for my $site (values $self) { + for my $site (values %$self) { push @out,{id=>$site->{-id},name=>$site->{-name}}; } - push @out,{id=>"_",name=>"Other site"); + push @out,{id=>"_",name=>"Other site"}; return @out; } sub useruri { - my ($self,$user,$site_id) = @; - if (!exists $self->{$site_id}) { + my ($self,$user,$site_id) = @_; + if (!exists($self->{$site_id})) { # If no valid site id provided, assume that we have just openid # url instead of user name return $user; } my $site=$self->{$site_id}; - if (!index($site->{-format}[0],"%s")>0) { + if (!index($site->{-format}[0],"%s")>=0) { return $site->{-format}[0]; } if ($site->{-translate_underscore}) { if (defined $site->{-format}[1] && ($user=~/^_/ || $user=~/_$/)) { - return sprintf $site->{-format}[1],$user); + return sprintf($site->{-format}[1],$user); } else { $user =~ tr/_/-/; } } - return sprintf $site->{-format}[0],$user); + return sprintf($site->{-format}[0],$user); } sub meaningless_url {