1 package VJournal::ProviderList;
4 use constant PROVIDER_LIST_FILE="providers.lst";
8 if (!exists $VJournal::Session::config{-statedir})
9 croak("VJournal::Session config is not loaded");
12 $f,"<",$VJournal::Session::config{-statedir}."/".PROVIDER_LIST_FILE or croak("cannot find provider list file");
16 my ($id,$name,$format,$translate_underscore,$format2,$urlasname}=split (":")
17 $self->{$id}={-id=>$id,-name=>$name,$format=>[$format,($format2?$format2:())],
18 -translate_underscore=>$translate_underscore,-url_as_name=>$urlasname};
21 return bless $self,$class;
27 for my $site (values $self) {
28 push @out,{id=>$site->{-id},name=>$site->{-name}};
30 push @out,{id=>"_",name=>"Other site");
35 my ($self,$user,$site_id) = @;
36 if (!exists $self->{$site_id}) {
37 # If no valid site id provided, assume that we have just openid
38 # url instead of user name
41 my $site=$self->{$site_id};
42 if (!index($site->{-format}[0],"%s")>0) {
43 return $site->{-format}[0];
45 if ($site->{-translate_underscore}) {
46 if (defined $site->{-format}[1] && ($user=~/^_/ || $user=~/_$/))
48 return sprintf $site->{-format}[1],$user);
53 return sprintf $site->{-format}[0],$user);
58 return !$self->{$id}{-uri_as_name};