Desde eitwebguru.com, publicarón el pasado 7 de Marzo un post donde explicaban paso a paso como realizar un script para poder sincronizar una fuente de RSS y publicarlo con cronjob cada cierto tiempo.
Como se que mucha gente anda programando sus propios scripts (y a alguno no le termina de funcionar), comparto el código que tienen publicado en su web, que además acorta las urls empleando bit.ly:
#!/usr/bin/perl -w
use Net::Twitter::Lite;
use XML::RSS::Parser::Lite;
use LWP::Simple;
use WWW::Shorten::Bitly ;
my $YOUR_CONSUMER_KEY = “[YOUR_CONSUMER_KEY]” ;
my $YOUR_CONSUMER_SECRET = “[YOUR_CONSUMER_SECRET]” ;
my $YOUR_ACCESS_TOKEN = “[YOUR_ACCESS_TOKEN]“;
my $YOUR_ACCESS_TOKEN_SECRET = “[YOUR_ACCESS_TOKEN_SECRET]” ;
my $nt = Net::Twitter::Lite->new(
consumer_key => $YOUR_CONSUMER_KEY,
consumer_secret => $YOUR_CONSUMER_SECRET,
access_token => $YOUR_ACCESS_TOKEN,
access_token_secret => $YOUR_ACCESS_TOKEN_SECRET,
);
my $set_post = &get_rss_post() ;
exit;
sub get_rss_post{
my $xml = get(“[RSS FEED URL]“);
my $rp = new XML::RSS::Parser::Lite;
$rp->parse($xml);
for (my $i = 0; $i < $rp->count(); $i++) {
my $it = $rp->get($i);
my $url = $it->get(‘url’);
my $bitly = WWW::Shorten::Bitly->new(URL => $url, USER => “[USERNAME]“, APIKEY => “[API KEY]“);
my $temp = $bitly->shorten(URL => $url);
my $post = $it->get(‘title’). ” ” .$temp;
eval{
$nt->update($post);
};
if ( $@ ) {
warn “update failed because: $@\n”;
}
}
return ;
}