#!C:/Perl/bin/perl #!/usr/bin/perl use strict; use warnings; use XMLRPC::Transport::HTTP; my $xmlrpcserver = XMLRPC::Transport::HTTP::CGI->dispatch_to('metaWeblog', 'blogger')->handle; package metaWeblog; # metaWeblog.newPost (blogid, username, password, struct, publish) returns string sub newPost { my ($self, $blogid, $username, $password, $content, $publish) = @_; my $logfile = "xmlrpc.log"; open(OUT, ">>$logfile"); print OUT "metaWeblog.newPost:", "\n"; print OUT "blogid:$blogid", "\n"; print OUT "username:$username", "\n"; print OUT "password:$password", "\n"; print OUT "content:$content->{title},$content->{description},$content->{mt_excerpt},$content->{mt_keywords}", "\n"; print OUT "publish:$publish", "\n"; close(OUT); return "OK"; } # metaWeblog.editPost (postid, username, password, struct, publish) returns true sub editPost { my ($self, $postid, $username, $password, $content, $publish) = @_; my $logfile = "xmlrpc.log"; open(OUT, ">>$logfile"); print OUT "metaWeblog.editPost:", "\n"; print OUT "postid:$postid", "\n"; print OUT "username:$username", "\n"; print OUT "password:$password", "\n"; print OUT "content:$content->{title},$content->{description},$content->{mt_excerpt},$content->{mt_keywords}", "\n"; print OUT "publish:$publish", "\n"; close(OUT); return 1; } # metaWeblog.getPost (postid, username, password) returns struct sub getPost { my ($self, $postid, $username, $password) = @_; my $logfile = "xmlrpc.log"; open(OUT, ">>$logfile"); print OUT "metaWeblog.getPost:", "\n"; print OUT "postid:$postid", "\n"; print OUT "username:$username", "\n"; print OUT "password:$password", "\n"; close(OUT); my $res; $res->{userid} = "User ID"; $res->{dateCreated} = "20080718T03:28:47"; $res->{postid} = "Post ID"; $res->{description} = "Description"; $res->{title} = "Title"; $res->{link} = "Link"; $res->{permaLink} = "Perma Link"; $res->{mt_excerpt} = "MT Excerpt"; $res->{mt_keywords} = "MT Keywords"; return $res; } # metaWeblog.getRecentPosts (blogid, username, password, numberOfPosts) returns array of structs sub getRecentPosts { my ($self, $blogid, $username, $password, $numberOfPosts) = @_; my $logfile = "xmlrpc.log"; open(OUT, ">>$logfile"); print OUT "metaWeblog.getRecentPosts:", "\n"; print OUT "blogid:$blogid", "\n"; print OUT "username:$username", "\n"; print OUT "password:$password", "\n"; print OUT "numberOfPosts:$numberOfPosts", "\n"; close(OUT); my @items = (); for (my $i = 0; $i < $numberOfPosts; $i++) { my $item; $item->{dateCreated} = "20080718T03:28:47 $i"; $item->{userid} = "User ID $i"; $item->{postid} = "Post ID $i"; $item->{description} = "Description $i"; $item->{title} = "Title $i"; $item->{link} = "Link $i"; $item->{permaLink} = "Perma Link $i"; $item->{mt_excerpt} = "MT excerpt $i"; $item->{mt_keywords} = "MT keywords $i"; push(@items, $item); } my $res = \@items; return $res; } package blogger; # blogger.getUsersBlogs (appkey, username, password) returns struct sub getUsersBlogs { my ($self, $appkey, $username, $password) = @_; my $logfile = "xmlrpc.log"; open(OUT, ">>$logfile"); print OUT "blogger.getUsersBlogs:", "\n"; print OUT "appkey:$appkey", "\n"; print OUT "username:$username", "\n"; print OUT "password:$password", "\n"; close(OUT); my @items = (); my $item; $item->{url} = "Top page URL"; $item->{blogid} = "Blog ID"; $item->{blogName} = "Blog Name"; push(@items, $item); my $res = \@items; return $res; } # blogger.getUserInfo (appkey, username, password) returns struct sub getUserInfo { my ($self, $appkey, $username, $password) = @_; my $logfile = "xmlrpc.log"; open(OUT, ">>$logfile"); print OUT "blogger.getUserInfo:", "\n"; print OUT "appkey:$appkey", "\n"; print OUT "username:$username", "\n"; print OUT "password:$password", "\n"; close(OUT); my @items = (); my $item; $item->{userid} = "User ID"; $item->{firstname} = "First Name"; $item->{lastname} = "Last Name"; $item->{nickname} = "Nick Name"; $item->{email} = "Email"; $item->{url} = "Top page URL"; push(@items, $item); my $res = \@items; return $res; } # blogger.deletePost (appkey, postid, username, password, publish) returns true sub deletePost { my ($self, $appkey, $postid, $username, $password, $publish) = @_; my $logfile = "xmlrpc.log"; open(OUT, ">>$logfile"); print OUT "blogger.deletePost:", "\n"; print OUT "appkey:$appkey", "\n"; print OUT "postid:$postid", "\n"; print OUT "username:$username", "\n"; print OUT "password:$password", "\n"; print OUT "publish:$publish", "\n"; close(OUT); return 1; }