The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Comics::Fetcher::Cascade -- Cascading url grabber

SYNOPSIS

  package Comics::Plugin::Sigmund;
  use parent qw(Comics::Fetcher::Cascade);

  our $name    = "Sigmund";
  our $url     = "http://www.sigmund.nl/";
  our @patterns = ( [ qr{ ... (?<url>...) ... },
                      qr{ ... (?<url>...) ... },
                      ...
                      qr{ ... (?<url>...) ... } ],
                  );

  # Return the package name.
  __PACKAGE__;

DESCRIPTION

The Cascading Fetcher can use one or more patterns to determine the URL of the desired image. If multiple patterns are supplied, each pattern is applied to the fetched page and must define the url for the next page as a named capture. The process is repeated, and the final pattern has to provide the final url and image name.

The Fetcher requires the common package variables:

$name

The full name of this comic, e.g. "Fokke en Sukke".

$url

The url of this comic's starting (i.e. home) page.

Fetcher specific arguments:

This Fetcher requires either $path (direct URL fetch), $pattern (single fetch), or @patterns (cascading fetch).

$path

The URL of the desired image.

If path is not an absolute URL, it will be interpreted relative to the url.

$pattern

A pattern to locate the image URL from the starting page.

@patterns

An array with patterns to locate the image URL.

When a pattern matches, it must define the named capture url, which points to the page to be loaded and used for the next pattern.

Any of the patterns may additionally define:

title

The image title.

alt

The alternative text.