NewsIsFree(http://www.newsisfree/) is a news aggregator which provides XML RPC interface to access news.
I wrote a simple agent for that.
For detail, see http://www.newsisfree.com/webservice.php
ps. Registration is required for the snippet.
use RPC::XML::Client;
use Digest::MD5 qw/md5_hex/;
use POSIX qw/strftime/;
my $user = '';
my $pass = '';
{
local $/;
open FAV, "fav";
@favorites = grep {$_} split /\n/, <FAV>;
close FAV;
}
$cli = RPC::XML::Client->new('http://www.newsisfree.com:80/RPC');
for $fav (@favorites){
@arg = (
RPC::XML::string->new($user),
RPC::XML::string->new(md5_hex $pass),
RPC::XML::int->new($fav)
);
$req = RPC::XML::request->new('hpe.getSource', @arg);
$resp = $cli->send_request($req);
next unless ref $resp;
print '='x70,$/,$/;
print $resp->{title}->value, $/,$/;
print '='x70,$/,$/;
for ( sort { $b->{date}->value <=> $a->{date}->value } @{$resp->{i
+tems}}){
print $_->{title}->value, $/;
print $_->{link}->value, $/;
print POSIX::strftime("%A, %B %d, %Y, %H:%M:%S", localtime $_-
+>{date}->value),$/x2;
}
}