The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

IMDB::Film - OO Perl interface to the movies database IMDB.

VERSION

IMDB::Film 0.01

SYNOPSIS

        use IMDB;

        my $imdbObj = new IMDB::Film(crit => 227445);

        or

        my $imdbObj = new IMDB::Film(crit => 'Troy');

        if($imdbObj->status) {
                print "Title: ".$imdbObj->title()."\n";
                print "Year: ".$imdbObj->year()."\n";
                print "Plot Symmary: ".$imdbObj->plot()."\n";
        } else {
                print "Something wrong: ".$imdbObj->error;
        }

DESCRIPTION

Overview

IMDB::Film is an object-oriented interface to the IMDB. You can use that module to retrieve information about film: title, year, plot etc.

Constructor and initialization

new()

Object's constructor. You should pass as parameter movie title or IMDB code.

        my $imdb = new IMDB::Film(crit => <some code>);

or

        my $imdb = new IMDB::Film(crit => <some title>);

Also, you can specify following optional parameters:

        - proxy - define proxy server name and port;
        - debug - switch on debug mode (on by default);
        - cache - cache or not of content retrieved pages.
_init()

Initialize object.

Object Private Methods

_search_film()

Implemets functionality to search film by name.

Object Public Methods

title()

Retrieve film title from film page. If was got search page instead of film page this method calls method _search_film to get list matched films and continue to process first one:

        my $title = $film->title();
year()

Get film year:

        my $year = $film->year();
cover()

Retrieve url of film cover:

        my $cover = $film->cover();
directors()

Retrieve film directors list each element of which is hash reference - { id => <ID>, name => <Name> }:

        my @directors = @{ $film->directors() };
        
writers()

Retrieve film writers list each element of which is hash reference - { id => <ID>, name => <Name> }:

        my @writers = @{ $film->writers() };
genres()

Retrieve film genres list:

        my @genres = @{ $film->genres() };
tagline()

Retrieve film tagline:

        my $tagline = $film->tagline();
plot()

Retrieve film plot summary:

        my $plot = $film->plot();
rating()

In scalar context returns film user rating, in array context returns film rating and number of votes:

        my $rating = $film->rating();

        or

        my($rating, $vnum) = $film->rating();
        print "RATING: $rating ($vnum votes )";
cast()

Retrieve film cast list each element of which is hash reference - { id => <ID>, name => <Full Name>, role => <Role> }:

        my @cast = @{ $film->cast() };
duration()

Retrieve film duration in minutes:

        my $duration = $film->duration();
country()

Retrieve film produced countries list:

        my @countries = $film->country();
language()

Retrieve film languages list:

        my @languages = $film->language();
error()

Return string which contains error messages separated by \n:

        my $errors = $film->error();
status()

Return a status of retrieving an information about movie from IMDB: 1 - successful, 0 - something wrong

        my $film = new IMDB::Film(crit => 'Troy');
        if($film->status) {
                print $film->title;
        } else {
                warn "Something wrong: ".$film->error;
        }
summary()

Retrieve film user summary:

        my $descr = $film->summary();
        
certifications()

Retrieve list of film certifications each element of which is hash reference - { country => certificate }:

        my @cert = $film->certifications();
full_plot

Return full movie plot.

Class Variables

%FIELDS

Contains list all object's properties. See description of pragma fields.

@FILM_CERT

Matches USA film certification notation and age.

EXPORTS

Nothing

BUGS

Please, send me any found bugs by email: misha@thunderworx.com.

SEE ALSO

HTML::TokeParser, IMDB::BaseClass, IMDB::Persons, IMDB::Movie

AUTHOR

Michael Stepanov (stepanov.michael@gmail.com)

COPYRIGHT

Copyright (c) 2004, Michael Stepanov. All Rights Reserved. This module is free software. It may be used, redistributed and/or modified under the same terms as Perl itself.