--- lib/Grep/Action/Fetch.pm 2007/02/18 12:53:48 20 +++ lib/Grep/Action/Fetch.pm 2007/02/18 15:07:03 21 @@ -11,6 +11,7 @@ use base qw/Grep::Action Jifty::Action/; use XML::Feed; +use LWP::UserAgent; use Data::Dump qw/dump/; @@ -71,10 +72,19 @@ Jifty->log->info("Fetching ", $feed->title, " at $uri"); } - my $xml_feed = XML::Feed->parse( URI->new($uri) ) + my $ua = LWP::UserAgent->new; + $ua->default_header( 'Cookie' => $feed->cookie ); + my $r = $ua->get( $uri ); + die "Can't fetch $uri: " . $r->status_line unless ( $r->is_success ); + + my $content = $r->content; + + die "No content returned from $uri" unless length( $content ) > 1; + + my $xml_feed = XML::Feed->parse( \$content ) or die $feed->title, " returned ", XML::Feed->errstr, " for $uri\n"; - warn "fetching ", $xml_feed->title, "\n"; + warn "getting entries from ", $xml_feed->title, "\n"; my @items; @@ -113,12 +123,9 @@ } else { - $self->result->message( 'No results found' ); - - # with default sticky_on_failure, this will keep form data - $self->result->failure( 1 ); - + $self->result->error( 'No results found' ); return 0; + } }