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;
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 {