WWW-Yahoo-Movies
view release on metacpan or search on metacpan
lib/WWW/Yahoo/Movies.pm view on Meta::CPAN
$self->_parse_people();
}
sub cover_file {
my $self = shift;
if($self->cover) {
my($file_name) = $self->cover =~ /(?:.+)\/(.+)$/;
return $file_name;
}
}
sub mpaa_rating {
my $self = shift;
if($_[0] && ref($_[0]) eq 'ARRAY') { $self->{mpaa_rating} = shift }
return wantarray ? @{ $self->{mpaa_rating} } : $self->{mpaa_rating}[0];
}
sub directors {
my $self = shift;
return $self->{'people'}->{'directors'} if $self->{'people'};
}
sub producers {
my $self = shift;
return $self->{'people'}->{'producers'} if $self->{'people'};
}
sub cast {
my $self = shift;
return $self->{'people'}->{'cast'} if $self->{'people'};
}
sub _parser {
my $self = shift;
$self->{_parser} = new HTML::TokeParser(\$self->_page());
return $self->{_parser};
}
sub _parse_title {
my $self = shift;
($self->{title}, $self->{year}) =
$self->_page =~ m#<h1><strong>(.+)\s+\((\d+)\)</strong></h1>#mi;
}
sub _parse_details {
my $self = shift;
my $p = $self->_parser();
while($p->get_tag('b')) {
my $t;
my $caption = $p->get_text;
SWITCH: for($caption) {
/^Genres/ && do {
$t = $p->get_trimmed_text('/tr');
$self->genres([split m#/#, $t]);
last SWITCH; };
/^Running Time/ && do {
$t = $p->get_trimmed_text('/tr');
$self->runtime($self->_parse_runtime($t));
last SWITCH; };
/^Release Date/ && do {
$t = $p->get_trimmed_text('b');
my($mon, $day, $year) = $t =~ /(.+?)\s+(\d+)(?:th|sd|st)?,\s+(\d+)\s?(?:[.(])?/;
my $date = "$day $mon $year";
$self->release_date($date);
last SWITCH; };
/^MPAA Rating/ && do {
$t = $p->get_trimmed_text('/tr');
my($code, $descr) = $t =~ /(.+?)\s+(.+)/;
$self->mpaa_rating([$code, $descr]);
last SWITCH; };
/^Distributor/ && do {
$t = $p->get_trimmed_text('/tr');
my($distr) = $t =~ /(.*)\./;
$self->distributor($distr);
last SWITCH; };
};
}
}
sub _parse_cover {
my $self = shift;
my $p = $self->_parser();
while(my $tag = $p->get_tag('img')) {
if($tag->[1]{alt} && $tag->[1]{alt} =~ /^$self->{title}/i) {
$self->{cover} = $tag->[1]{src};
last;
}
}
}
sub _parse_trailer {
my $self = shift;
my $p = $self->_parser();
while(my $tag = $p->get_tag('a')) {
if($tag->[1]{href} =~ /videoWin/i) {
$self->{trailer} = $tag->[1]{href};
last;
}
}
}
sub _parse_plot {
my $self = shift;
my $p = $self->_parser();
while(my $tag = $p->get_token()) {
if($tag->[0] eq 'C') {
last if $tag->[1] =~ /another vertical spacer/;
}
}
$p->get_tag('font');
( run in 2.674 seconds using v1.01-cache-2.11-cpan-54e63673c56 )