Provided by: libxmltv-perl_0.5.67-0.1_all bug

NAME

       XMLTV::Grab_XML - Perl extension to fetch raw XMLTV data from a site

SYNOPSIS

           package Grab_XML_rur;
           use base 'XMLTV::Grab_XML';
           sub urls_by_date( $ ) { my $pkg = shift; ... }
           sub country( $ ) { my $pkg = shift; return 'Ruritania' }
           # Maybe override a couple of other methods as described below...
           Grab_XML_rur->go();

DESCRIPTION

       This module helps to write grabbers which fetch pages in XMLTV format from some website
       and output the data.  It is not used for grabbers which scrape human-readable sites.

       It consists of several class methods (package methods).  The way to use it is to subclass
       it and override some of these.

METHODS

       XMLTV::Grab_XML->date_init()
           Called at the start of the program to set up Date::Manip.  You might want to override
           this with a method that sets the timezone.

       XMLTV::Grab_XML->urls_by_date()
           Returns a hash mapping YYYYMMDD dates to a URL where listings for that date can be
           downloaded.  This method is abstract, you must override it.

           Arguments: the command line options for --config-file and --quiet.

       XMLTV::Grab_XML->xml_from_data(data)
           Given page data for a particular day, turn it into XML.  The default implementation
           just returns the data unchanged, but you might override it if you need to decompress
           the data or patch it up.

       XMLTV::Grab_XML->configure()
           Configure the grabber if needed.  Arguments are --config-file option (or undef) and
           --quiet flag (or undef).

           This method is not provided in the base class; if you don't provide it then attempts
           to --configure will give a message that configuration is not necessary.

       XMLTV::Grab_XML->nextday(day)
           Bump a YYYYMMDD date by one.  You probably shouldn't override this.

       XMLTV::Grab_XML->country()
           Return the name of the country you're grabbing for, used in usage messages.  Abstract.

       XMLTV::Grab_XML->usage_msg()
           Return a command-line usage message.  This calls "country()", so you probably need to
           override only that method.

       XMLTV::Grab_XML->get()
           Given a URL, fetch the content at that URL.  The default implementation calls
           XMLTV::Get_nice::get_nice() but you might want to override it if you need to do wacky
           things with http requests, like cookies.

           Note that while this method fetches a page, "xml_from_data()" does any further
           processing of the result to turn it into XML.

       XMLTV::Grab_XML->go()
           The main program.  Parse command line options, fetch and write data.

           Most of the options are fairly self-explanatory but this routine also calls the
           XMLTV::Memoize module to look for a --cache argument.  The functions memoized are
           those given by the "cachables()" method.

       XMLTV::Grab_XML->cachables()
           Returns a list of names of functions which could reasonably be memoized between runs.
           This will normally be whatever function fetches the web pages - you memoize that to
           save on repeated downloads.  A subclass might want to add things to this list if it
           has its own way of fetching web pages.

       XMLTV::Grab_XML->remove_early_stop_times()
           Checks each stop time and removes it if it's before the start time.

           Argument: the XML to correct Returns: the corrected XML

AUTHOR

       Ed Avis, ed@membled.com

SEE ALSO

       perl(1), XMLTV(3).