{{$NEXT}}
+ - Changed host to eztv.ch
+ - Updated DOM parsing expresions
+
+0.05 2013-12-29 13:14:23 Europe/Madrid
+
- Force upgrade of Mojolicious to 4.X (no auto version from UA)
- Small error and tests refactor
# ABSTRACT: EZTV scrapper
-has url => ( is => 'ro', lazy => 1, default => sub { Mojo::URL->new('http://eztv.it/') } );
+has url => ( is => 'ro', lazy => 1, default => sub { Mojo::URL->new('https://eztv.ch/') } );
has url_shows => ( is => 'ro', lazy => 1, default => sub { shift->url->clone->path('/showlist/') } );
-has shows =>
+has shows =>
is => 'ro',
lazy => 1,
builder => '_build_shows',
sub _build_shows {
my $self = shift;
- $self->get_response( $self->url_shows )->dom->find('table.forum_header_border tr[name="hover"]')->map(sub {
+ $self->get_response( $self->url_shows )->dom->find('table.header_brd tr[name="hover"]')->map(sub {
my $tr = shift;
- my $link = $tr->at('td:nth-child(1) a');
+ my $link = $tr->at('td:nth-child(2) a');
WWW::EZTV::Show->new(
title => $link->all_text,
url => $self->url->clone->path($link->attr('href')),
- status => lc($tr->at('td:nth-child(2)')->all_text),
- rating => $tr->at('td:nth-child(3)')->all_text
+ status => lc($tr->at('td:nth-child(3)')->all_text),
+ rating => $tr->at('td:nth-child(4)')->text + 0
);
});
}
((?<quality>\d+p)\s+)?
(?<team>.*?)
)
- (?:
+ (?:
\s+
- \((?<size>
- \d+
+ \((?<size>
+ \d+
[^\)]+
- )\)
+ )\)
)?
\s*$/xi;
return {
name => $+{name} || $title,
chapter => $+{chapter},
- number => $+{number} +0,
+ number => ($+{number}||0) +0,
season => ($+{season}||0) +0,
total => ($+{total}||0) +0,
version => $+{version} || '',
package WWW::EZTV::Show;
use Moose;
+use v5.10;
with 'WWW::EZTV::UA';
use WWW::EZTV::Link;
use WWW::EZTV::Episode;
has year => is => 'ro', lazy => 1, default => \&_year;
has url => is => 'ro', isa => 'Mojo::URL', required => 1;
has status => is => 'ro', isa => 'Str', required => 1;
-has rating => is => 'ro', isa => 'Int', default => sub {0};
-has episodes =>
+has rating => is => 'ro', isa => 'Num', default => sub {0};
+has episodes =>
is => 'ro',
lazy => 1,
builder => '_build_episodes',
sub _build_episodes {
my $self = shift;
- $self->get_response($self->url)->dom->find('table.forum_header_noborder tr[name="hover"]')->map(sub{
+ $self->get_response($self->url)->dom->find('table.header_noborder tr[name="hover"]')->map(sub{
my $tr = shift;
- my $a = $tr->at('td:nth-child(2) a');
+ my $link = $tr->at('td:nth-child(2) a');
WWW::EZTV::Episode->new(
- title => $a->attr('title'),
- url => $self->url->clone->path($a->attr('href')),
+ title => $link->attr('alt'),
+ url => $self->url->clone->path($link->attr('href')),
links => $tr->find('td:nth-child(3) a')->map(sub{
- WWW::EZTV::Link->new( url => shift->attr('href') )
+ WWW::EZTV::Link->new( url => $_[0]->attr('href')
+ || $_[0]->attr('data-url')
+ || $_[0]->attr('data-bx-magnet') )
}),
released => $tr->at('td:nth-child(4)')->all_text,
show => $self