AnyEvent-Feed
view release on metacpan or search on metacpan
lib/AnyEvent/Feed.pm view on Meta::CPAN
sub fetch {
my ($self, $cb) = @_;
unless (defined $cb) {
croak "no callback given to fetch!";
}
http_get $self->{url}, headers => $self->_get_headers, sub {
my ($data, $hdr) = @_;
#d# warn "HEADERS ($self->{last_mod}): "
#d# . (join ",\n", map { "$_:\t$hdr->{$_}" } keys %$hdr)
#d# . "\n";
if ($hdr->{Status} =~ /^2/) {
my $feed;
eval {
$self->{feed} = XML::Feed->parse (\$data);
};
if ($@) {
$cb->($self, undef, undef, "exception: $@");
} elsif (not defined $self->{feed}) {
$cb->($self, undef, undef, XML::Feed->errstr);
} else {
$cb->($self, $self->_new_entries, $self->{feed});
$self->{last_mod} = $hdr->{'last-modified'};
}
} elsif (defined ($self->{last_mod}) && $hdr->{Status} eq '304') {
# do nothing, everything was/is fine!
$cb->($self, [], $self->{feed});
} else {
$cb->($self, undef, undef, "$hdr->{Status} $hdr->{Reason}");
}
};
}
=back
=head1 AUTHOR
Robin Redeker, C<< <elmex@ta-sa.org> >>
=head1 SEE ALSO
L<XML::Feed>
L<AnyEvent::HTTP>
L<AnyEvent>
=head1 BUGS
=head2 Known Bugs
There is actually a known bug with encodings of contents of Atom feeds.
L<XML::Atom> by default gives you UTF-8 encoded data. You have to set
this global variable to be able to use the L<XML::Feed::Entry> interface
without knowledge of the underlying feed type:
$XML::Atom::ForceUnicode = 1;
I've re-reported this bug against L<XML::Feed>, as I think it should
take care of this. L<XML::Atom> should probably just fix it's Unicode
interface, but it seems to be a bit deserted w.r.t. fixing the bugs in
the tracker.
=head2 Contact
Please report any bugs or feature requests to
C<bug-anyevent-feed at rt.cpan.org>, or through the web interface at
L<http://rt.cpan.org/NoAuth/ReportBug.html?Queue=AnyEvent-Feed>.
I will be notified and then you'll automatically be notified of progress on
your bug as I make changes.
=head1 SUPPORT
You can find documentation for this module with the perldoc command.
perldoc AnyEvent::Feed
You can also look for information at:
=over 4
=item * IRC: AnyEvent::Feed IRC Channel
See the same channel as the L<AnyEvent::XMPP> module:
IRC Network: http://freenode.net/
Server : chat.freenode.net
Channel : #ae_xmpp
Feel free to join and ask questions!
=item * AnnoCPAN: Annotated CPAN documentation
L<http://annocpan.org/dist/AnyEvent-Feed>
=item * CPAN Ratings
L<http://cpanratings.perl.org/d/AnyEvent-Feed>
=item * RT: CPAN's request tracker
L<http://rt.cpan.org/NoAuth/Bugs.html?Dist=AnyEvent-Feed>
=item * Search CPAN
L<http://search.cpan.org/dist/AnyEvent-Feed>
=back
=head1 COPYRIGHT & LICENSE
Copyright 2009 Robin Redeker, all rights reserved.
This program is free software; you can redistribute it and/or modify it
( run in 0.818 second using v1.01-cache-2.11-cpan-2398b32b56e )