Acme-24
view release on metacpan or search on metacpan
lib/Acme/24.pm view on Meta::CPAN
$VERSION = '0.04';
use strict;
use warnings;
use LWP::Simple ();
use XML::RSSLite ();
use constant URL => 'http://www.notrly.com/jackbauer';
# Returns one random fact
sub random_jackbauer_fact
{
my $url = URL;
my $page = LWP::Simple::get($url);
my $fact = '';
if($page =~ m(<p class="fact">([^<]+)</p>))
{
$fact = $1;
$fact =~ s/^\s+//;
$fact =~ s/\s+$//;
lib/Acme/24.pm view on Meta::CPAN
}
$fact .= "\n";
}
return($fact);
}
# Returns an array of 24 random facts
sub random_jackbauer_facts
{
my @facts = ();
my $url = URL . '/rss.php';
my $tries = 5;
my %seen;
while ($tries-- > 0 && @facts < 24) {
my %result;
my $feed = LWP::Simple::get($url);
XML::RSSLite::parseRSS(\%result, \$feed);
lib/Acme/24.pm view on Meta::CPAN
}
if (@facts && scalar(@facts) > 24) {
splice(@facts, 24);
}
return(\@facts);
}
# Build a database of Jack Bauer facts
sub collect_facts
{
my($self, $file) = @_;
$file ||= './jackbauer.txt';
my $new_facts = $self->random_jackbauer_facts();
return unless $new_facts;
open(my $fh, '>>' . $file) or return;
for(@$new_facts)
{
print $fh $_, "\n%\n";
}
( run in 0.259 second using v1.01-cache-2.11-cpan-a5abf4f5562 )