X-Git-Url: http://git.ieval.ro/?a=blobdiff_plain;f=lib%2FWWW%2FSearch%2FTorrentz.pm;h=34ae025bf83ae5ec030ca1f1f3df087de805720e;hb=7dcf8cdab03b116a2cd2faefd95fa27683e6b48e;hp=4c575e64de34528dd17e6d52721829f1477ad54f;hpb=99ef893e46a2535fa17c78d6dbe718df1aa3a217;p=www-search-torrentz.git diff --git a/lib/WWW/Search/Torrentz.pm b/lib/WWW/Search/Torrentz.pm index 4c575e6..34ae025 100644 --- a/lib/WWW/Search/Torrentz.pm +++ b/lib/WWW/Search/Torrentz.pm @@ -14,58 +14,58 @@ use WWW::Search::Torrentz::Result; sub gui_query{ shift->native_query(@_) } sub _native_setup_search{ - my ($self, $native_query, $options) = @_; - $self->agent_email('marius@ieval.ro'); - $options //= {}; - my $base_url = $options->{search_url} // 'https://torrentz.eu/search'; - $self->{search_debug} = $options->{search_debug}; - $self->{_next_url} = "$base_url?f=$native_query"; - $self->user_agent->delay(2/60); + my ($self, $native_query, $options) = @_; + $self->agent_email('marius@ieval.ro'); + $options //= {}; + my $base_url = $options->{search_url} // 'https://torrentz.eu/search'; + $self->{search_debug} = $options->{search_debug}; + $self->{_next_url} = "$base_url?f=$native_query"; + $self->user_agent->delay(2/60); } sub _parse_tree{ - my ($self, $tree) = @_; - my $found = 0; - - my @potential_results = $tree->find('dl'); - my $result_count = $tree->find('h2')->as_text; - if (defined $result_count && $result_count ne 'No Torrents Found') { - $result_count =~ s/orrents.*//; - $result_count =~ y/0-9//cd; - $self->approximate_result_count(int $result_count); - } - - for my $node (@potential_results) { - my $a = $node->find('a'); - next unless defined $a; - - my $infohash = substr $a->attr('href'), 1; - next unless $infohash =~ m,^[a-f0-9]{40}$,; - my $title = $a->as_text; - my ($verified, $age, $size, $seeders, $leechers); - $verified = 0; - for my $span($node->find('span')) { - given($span->attr('class')){ - $verified = int ($span->as_text =~ m,^\d+,) when 'v'; - $age = $span->as_text when 'a'; - $size = $span->as_text when 's'; - $seeders = int $span->as_text when 'u'; - $leechers = int $span->as_text when 'd'; - } + my ($self, $tree) = @_; + my $found = 0; + + my @potential_results = $tree->find('dl'); + my $result_count = $tree->find('h2')->as_text; + if (defined $result_count && $result_count ne 'No Torrents Found') { + $result_count =~ s/orrents.*//; + $result_count =~ y/0-9//cd; + $self->approximate_result_count(int $result_count); } - push @{$self->{cache}}, WWW::Search::Torrentz::Result->new(infohash => $infohash, title => $title, verified => $verified, age => $age, size => $size, seeders => $seeders, leechers => $leechers, ua => $self->user_agent); - say STDERR "infohash => $infohash, title => $title, verified => $verified, age => $age, size => $size, seeders => $seeders, leechers => $leechers" if $self->{search_debug}; - $found++; - } - - my $url = $tree->look_down(rel => 'next'); - if (defined $url) { - my $prev = $self->{_prev_url} =~ s,/[^/]+$,,r; - $self->{_next_url} = $prev . $url->attr('href') - } - say STDERR "Found: $found" if $self->{search_debug}; - return $found; + for my $node (@potential_results) { + my $a = $node->find('a'); + next unless defined $a; + + my $infohash = substr $a->attr('href'), 1; + next unless $infohash =~ m,^[a-f0-9]{40}$,; + my $title = $a->as_text; + my ($verified, $age, $size, $seeders, $leechers); + $verified = 0; + for my $span ($node->find('span')) { + given($span->attr('class')){ + $verified = int ($span->as_text =~ m,^\d+,) when 'v'; + $age = $span->as_text when 'a'; + $size = $span->as_text when 's'; + $seeders = int $span->as_text when 'u'; + $leechers = int $span->as_text when 'd'; + } + } + + push @{$self->{cache}}, WWW::Search::Torrentz::Result->new(infohash => $infohash, title => $title, verified => $verified, age => $age, size => $size, seeders => $seeders, leechers => $leechers, ua => $self->user_agent); + say STDERR "infohash => $infohash, title => $title, verified => $verified, age => $age, size => $size, seeders => $seeders, leechers => $leechers" if $self->{search_debug}; + $found++; + } + + my $url = $tree->look_down(rel => 'next'); + if (defined $url) { + my $prev = $self->{_prev_url} =~ s,/[^/]+$,,r; + $self->{_next_url} = $prev . $url->attr('href') + } + say STDERR "Found: $found" if $self->{search_debug}; + return $found; } 1;