#!/usr/bin/perl -T =head1 NAME vjuserinfo - return current user info as json =head1 SYNOPSIS http://your.server.org/cgi-bin/vjuserinfo/your-blog-top =head1 DESCRIPTION Returns info about current user using following format { url:"somebody.livejournal.com", displayname:"somebody@lj", state: "guest", avatar: {src: "http://your.server.org/avatars/somebody@lj.gif", width:100, height:100}, } B can be B, B or B. If user is not logged in, returns following structure: { state: "notlogged", providers: [ {name: "Live journal",icon:"/avatars/lj.gif",id: "lj"} ... } =cut use VJournal::Session; use VJournal::ProviderList; use JSON; use CGI; my $cgi=new CGI; my $session = VJournal::Session->new($cgi); my $out={}; if (!defined $session) { # User is not authenticated. Return list of providers; $out->{state}="notlogged"; $sites=VJournal::ProviderList->new; $out->{providers}=[ $sites->menu ] ; $session=$cgi; } else { if ($session->isowner()) { $out->{state}="owner"; } elsif ($session->banned()) { $out->{state}="banned"; } else { $out->{state}="guest"; } $out->{url}=$session->identity(); $out->{displayname}=$session->name(); %avatar=$session->avatar(); if(exists $avatar{-src}) { $out->{avatar}={src=>$avatar{-src},-width=>$avatar{-width}, -height=>$avatar{-height}}; } } print $session->header(-content_type=>"text/json",-charset=>"utf-8"); print encode_json($out);