my($str) = @_;
$feed->init_empty;
if ($str) {
- $feed->{rss}->parse($$str);
+ $feed->{rss}->parse($$str, { hashrefs_instead_of_strings => 1 } );
}
$feed;
}
my @entries;
for my $item (@{ $rss->{items} }) {
push @entries, XML::Feed::Entry::Format::RSS->wrap($item);
+ $entries[-1]->{_version} = $rss->{'version'};
}
@entries;
}
package XML::Feed::Entry::Format::RSS;
use strict;
+sub format { 'RSS ' . $_[0]->{'_version'} }
+
use XML::Feed::Content;
use base qw( XML::Feed::Entry );
sub lat {
my $item = shift->{entry};
if (@_) {
- $item->{geo}{lat} = $_[0];
+ $item->{geo}{lat} = $_[0];
} else {
- return $item->{geo}{lat};
+ return $item->{geo}{lat};
}
}
sub long {
my $item = shift->{entry};
if (@_) {
- $item->{geo}{long} = $_[0];
+ $item->{geo}{long} = $_[0];
} else {
- return $item->{geo}{long};
+ return $item->{geo}{long};
}
}
+sub enclosure {
+ my $entry = shift;
+
+ if (@_) {
+ my $enclosure = shift;
+ $entry->{entry}->{enclosure} = {
+ url => $enclosure->{url},
+ type => $enclosure->{type},
+ length => $enclosure->{length}
+ };
+ } else {
+ return XML::Feed::Enclosure->new($entry->{entry}->{enclosure});
+ }
+}
1;