diff options
-rw-r--r-- | lib/Crawl/Bot/Plugin/Mantis.pm | 8 | ||||
-rw-r--r-- | lib/Crawl/Bot/Role/RSS.pm | 10 |
2 files changed, 13 insertions, 5 deletions
diff --git a/lib/Crawl/Bot/Plugin/Mantis.pm b/lib/Crawl/Bot/Plugin/Mantis.pm index 4ea2db9..6c2fe61 100644 --- a/lib/Crawl/Bot/Plugin/Mantis.pm +++ b/lib/Crawl/Bot/Plugin/Mantis.pm @@ -9,7 +9,7 @@ sub rss_feed { 'http://crawl.develz.org/mantis/issues_rss.php' } sub item_to_id { my $self = shift; my ($item) = @_; - my $link = $item->identifier; + my $link = $item->{identifier}; (my $id = $link) =~ s/.*=(\d+)$/$1/; return $id; } @@ -21,9 +21,9 @@ sub tick { my $id = $self->item_to_id($item); return if $self->has_item($id); warn "New issue! ($id)"; - (my $title = $item->title) =~ s/\d+: //; - my $link = $item->link; - (my $user = $item->creator) =~ s/ <.*?>$//; + (my $title = $item->{title}) =~ s/\d+: //; + my $link = $item->{link}; + (my $user = $item->{creator}) =~ s/ <.*?>$//; $self->say_all("$title ($link) by $user"); $self->add_item($id); }); diff --git a/lib/Crawl/Bot/Role/RSS.pm b/lib/Crawl/Bot/Role/RSS.pm index 8470eee..8576a82 100644 --- a/lib/Crawl/Bot/Role/RSS.pm +++ b/lib/Crawl/Bot/Role/RSS.pm @@ -10,7 +10,15 @@ requires 'rss_feed'; sub current_items { my $self = shift; my $rss = XML::RAI->parse_uri($self->rss_feed); - return @{ $rss->items }; + # 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; |