logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

OpenGuides::Feed - generate data feeds for OpenGuides in various formats.

Author

       The OpenGuides Project (openguides-dev@lists.openguides.org)

Credits

       Written by Earle Martin, based on the original OpenGuides::RDF by Kake Pugh.

perl v5.40.0                                       2025-01-02                              OpenGuides::Feed(3pm)

Description

       Produces RSS 1.0 and Atom 1.0 feeds for OpenGuides.  Distributed and installed as part of the  OpenGuides
       project,  not  intended  for  independent  installation.   This  documentation is probably only useful to
       OpenGuides developers.

Methods

new
               my $feed = OpenGuides::Feed->new( wiki       => $wiki,
                                                 config     => $config,
                                                 og_version => '1.0', );

           "wiki" must be a Wiki::Toolkit object and "config" must be an  OpenGuides::Config  object.   Both  of
           these  arguments  are  mandatory.   "og_version"  is  an  optional argument specifying the version of
           OpenGuides for inclusion in the feed.

       rss_maker
           Returns a raw Wiki::Toolkit::Feed::RSS object created with the values you invoked this module with.

       atom_maker
           Returns a raw Wiki::Toolkit::Feed::Atom object created with the values you invoked this module with.

       make_feed
               # Ten most recent changes in RSS format.
               my %args = ( items     => 10,
                            feed_type => 'rss',
                            also_return_timestamp => 1 );
               my ($feed_output,$feed_timestamp) = $rdf_writer->make_feed( %args );

               print "Content-Type: application/rdf+xml\n";
               print "Last-Modified: " . $feed_timestamp . "\n\n";
               print $feed_output;
               print $rdf_writer->make_feed( %args );

               # All the changes made by bob in the past week, ignoring minor edits, in Atom.
               $args{days}               = 7;
               $args{ignore_minor_edits  = 1;
               $args{filter_on_metadata} => { username => "bob" };
               $args{also_return_timestamp} => 1;

               my ($feed_output,$feed_timestamp) = $rdf_writer->make_feed( %args );
               print "Content-Type: application/atom+xml\n";
               print "Last-Modified: " . $feed_timestamp . "\n\n";
               print $feed_output;

       feed_timestamp
           Instead of calling this, you should instead pass in the 'also_return_timestamp' option. You will then
           get back the feed timestamp, along with the feed output.

           This method will be removed in future, and currently will  only  return  meaningful  values  if  your
           arguments relate to recent changes.

               print "Last-Modified: " . $feed->feed_timestamp( %args ) . "\n\n";

           Returns  the timestamp of something in POSIX::strftime style ("Tue, 29 Feb 2000 12:34:56 GMT"). Takes
           the same arguments as make_recentchanges_rss().  You will most likely need  this  to  print  a  Last-
           Modified HTTP header so user-agents can determine whether they need to reload the feed or not.

Name

       OpenGuides::Feed - generate data feeds for OpenGuides in various formats.

See Also

       •   Wiki::Toolkit, Wiki::Toolkit::Feed::RSS and Wiki::Toolkit::Feed::Atom

       •   <http://openguides.org/>

Synopsis

           use Wiki::Toolkit;
           use OpenGuides::Config;
           use OpenGuides::Feed;

           my $wiki = Wiki::Toolkit->new( ... );
           my $config = OpenGuides::Config->new( file => "wiki.conf" );
           my $feed = OpenGuides::Feed->new( wiki       => $wiki,
                                             config     => $config,
                                             og_version => '1.0', );

           # Ten most recent changes in RSS format.
           my %args = ( items     => 10,
                        feed_type => 'rss',
                        also_return_timestamp => 1 );
           my ($feed_output,$feed_timestamp) = $feed->make_feed( %args );

           print "Content-Type: application/rdf+xml\n";
           print "Last-Modified: " . $feed_timestamp . "\n\n";
           print $feed_output;

See Also