package Feed::Source::Page2RSS; use warnings; use strict; use Carp; use URI; use constant { RSS => "http://page2rss.com/page/rss", ATOM => "http://page2rss.com/page/atom", }; =head1 NAME Feed::Source::Page2RSS - Creation of a Atom/RSS feed with the Page2RSS service =head1 VERSION Version 0.01 =cut our $VERSION = '0.01'; =head1 SYNOPSIS Page2RSS create a Atom/RSS feed to monitor a webpage. This module help you to create these feeds. use Feed::Source::Page2RSS; my $feed = Feed::Source::Page2RSS->new( url => "http://www.google.com", feed_type => "rss" ); my $feed_url = $feed->url_feed(); or my $feed = Feed::Source::Page2RSS->new( url => "http://www.google.com" ); my $atom = $feed->atom_feed(); is equivalent to my $feed = Feed::Source::Page2RSS->new( url => "http://www.google.com" ); $feed->feed_type('atom'); my $atom = $feed->url_feed(); or my $feed = Feed::Source::Page2RSS->new( url => "http://www.google.com" ); my $rss = $feed->rss_feed(); is equivalent to my $feed = Feed::Source::Page2RSS->new( url => "http://www.google.com" ); $feed->feed_type('rss'); my $rss = $feed->url_feed(); =head1 FUNCTIONS =head2 new Constructor of the Feed::Source::Page2RSS object. You can spcecify the following options : =over 4 =item url URL to monitor =item feed_type Feed type of the returned URL. Possible values are RSS and Atom. =back =cut sub new { my ($class, %args) = @_; my $self; $self->{params}{url} = $args{url} if exists $args{url}; $self->{feed_type} = uc $args{feed_type} || "RSS"; bless $self, $class; $self; } =head2 feed_type Adjust the feed type. Possible value are RSS and Atom. =cut sub feed_type { my $self = shift; $self->{feed_type} = uc shift if @_; } =head2 url_feed Return the URL feed. =cut sub url_feed { my $self = shift; if (exists $self->{params}{url}) { my $uri; if ($self->{feed_type} eq "RSS") { $uri = URI->new(RSS); } else { $uri = URI->new(ATOM) } $uri->query_form( $self->{params} ); return $uri->as_string(); } else { croak "You must specify an URL to monitor"; } } =head2 atom_feed Return the Atom URL feed. =cut sub atom_feed { my $self = shift; if (exists $self->{params}{url}) { my $uri = URI->new(ATOM); $uri->query_form( $self->{params} ); return $uri->as_string(); } else { croak "You must specify an URL to monitor"; } } =head2 rss_feed Return the RSS URL feed. =cut sub rss_feed { my $self = shift; if (exists $self->{params}{url}) { my $uri = URI->new(RSS); $uri->query_form( $self->{params} ); return $uri->as_string(); } else { croak "You must specify an URL to monitor"; } } =head1 AUTHOR Emmanuel Di Pretoro, C<< <> >> =head1 BUGS Please report any bugs or feature requests to C, or through the web interface at L. 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 Feed::Source::Page2RSS You can also look for information at: =over 4 =item * AnnoCPAN: Annotated CPAN documentation L =item * CPAN Ratings L =item * RT: CPAN's request tracker L =item * Search CPAN L =back =head1 SEE ALSO Page2RSS L =head1 COPYRIGHT & LICENSE Copyright 2006 Emmanuel Di Pretoro, all rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =cut 1; # End of Feed::Source::Page2RSS