package POE::Filter::Atom; use strict; use warnings; use base qw( POE::Filter ); use Carp qw( croak ); use XML::Atom::Feed; use XML::Atom::Entry; our $VERSION = '0.01'; sub BUFFER () { 0 } sub CDATA () { 1 } sub new { my $class = shift; croak "$class requires an even number of parameters" if @_ % 2; bless( [ [], # BUFFER 0, # CDATA ], ref $class || $class ); } sub get_one_start { my ($self, $lines) = @_; $lines = [ $lines ] unless ( ref( $lines ) ); push( @{ $self->[ BUFFER ] }, @{ $lines } ); } # sub get ? sub get_one { my $self = shift; my $ret = []; my $l = $self->[ BUFFER ]->[ -1 ]; return $ret unless ( $l ); # XXX don't skip, but return the time instead of a feed? if ( $l =~ m~^