Buzznet-API
view release on metacpan or search on metacpan
lib/Buzznet/API.pm view on Meta::CPAN
require RPC::XML::Client;
require MIME::Base64;
use Buzznet::Entry;
use Buzznet::Comment;
use Buzznet::Profile;
use Buzznet::Gallery;
# Method constants
use constant NEWPOST => "buzznet.newPost";
use constant EDITPOST => "buzznet.editPost";
use constant REMOVEPOST => "buzznet.removePost";
use constant GETENTRY => "buzznet.getEntry";
use constant GETCOMMENTS => "buzznet.getComments";
use constant ADDCOMMENT => "buzznet.addComment";
use constant REMOVECOMMENT => "buzznet.removeComment";
use constant GETRECENTCOMMENTS => "buzznet.getRecentComments";
use constant ADDBUZZWORDS => "buzznet.addBuzzwords";
use constant REMOVEBUZZWORDS => "buzznet.removeBuzzwords";
use constant UPDATEPROFILE => "buzznet.updateProfile";
use constant ADDFRIEND => "buzznet.addFriend";
use constant REMOVEFRIEND => "buzznet.removeFriend";
use constant ADDGALLERY => "buzznet.addGallery";
use constant EDITGALLERY => "buzznet.editGallery";
use constant REMOVEGALLERY => "buzznet.removeGallery";
use constant ADDBOOKMARK => "buzznet.addBookmark";
use constant REMOVEBOOKMARK => "buzznet.removeBookmark";
use constant GETBOOKMARKS => "buzznet.getBookmarks";
use constant GETMYFRIENDS => "buzznet.getMyFriends";
use constant GETFRIENDS => "buzznet.getFriends";
use constant GETFRIENDSRECENT => "buzznet.getFriendsRecent";
use constant GETMOSTPOPULAR => "buzznet.getMostPopular";
use constant GETTODAYSBIRTHDAYS => "buzznet.getTodaysBirthdays";
use constant GETONLINENOW => "buzznet.getOnlineNow";
use constant GETRECENTPOSTS => "buzznet.getRecentPosts";
use constant GETFEATUREDUSERS => "buzznet.getFeaturedUsers";
use constant GETBUZZWORD => "buzznet.getBuzzwords";
use constant BROWSEBUZZWORDS => "buzznet.browseBuzzwords";
use constant GETGALLERY => "buzznet.getGallery";
use constant GETSUBGALLERIES => "buzznet.getSubGalleries";
sub new
{
my ($package,@refs) = @_;
my $inst = {@refs};
$inst->{"error"} = undef;
return bless($inst,$package);
}
sub url
{
my $self = shift;
my $url = "http://www.buzznet.com/interface/xmlrpc/?key=" . $self->{"key"};
return $url;
}
sub getXMLRPC
{
my $self = shift;
my $cli = RPC::XML::Client->new($self->url);
$cli->credentials("Buzznet",$self->{"username"},$self->{"password"});
my $request = $cli->request;
return $cli;
}
sub sendRequest
{
my $self = shift;
my $request = RPC::XML::request->new(@_);
my $client = $self->getXMLRPC;
my $response = $client->send_request($request);
if(ref($response))
{
if(!$response->value)
{
$self->{"error"} = "Error response from server";
}
return $response->value;
}
else
{
$self->{"error"} = $response;
# error condition
return 0;
}
}
sub error
{
my $self = shift;
return $self->{"error"};
}
sub newPost
{
my $self = shift;
my ($filename, $caption, $body, $category) = @_;
my $encoded_file = "";
eval
{
open(FILE,$filename) || die "Could not open $filename: $!\n";
while(read(FILE,my $buf,60*57))
{
$encoded_file .= MIME::Base64::encode_base64($buf);
}
};
if($@)
{
$self->{"error"} = $@;
# error condition
return 0;
( run in 1.192 second using v1.01-cache-2.11-cpan-cdf2f3d4e48 )