blob: c8db95a3e984e9d5685ec91312663d49aefa8f18 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
package Crawl::Bot::Role::RSS;
use Moose::Role;
use XML::RAI;
use Try::Tiny;
with 'Crawl::Bot::Role::CachedItems';
requires 'rss_feed';
sub current_items {
my $self = shift;
my $rss = try { XML::RAI->parse_uri($self->rss_feed) } catch { warn $_ };
return unless ref($rss) eq 'XML::RAI';
# after the XML::RAI object goes out of scope, the item objects become
# worthless. how dumb. capture the relevant data in some hashrefs instead.
return map {
my $item = $_;
+{
map { $_ => $item->$_ }
qw(identifier title link creator)
}
} @{ $rss->items };
}
no Moose::Role;
1;
|