view release on metacpan or search on metacpan
version 0.049
SYNOPSIS
#!/usr/bin/env perl
package CrawlApache;
use feature qw(say);
use strict;
use utf8;
use warnings qw(all);
use HTML::LinkExtor;
use Moo;
extends 'AnyEvent::Net::Curl::Queued::Easy';
after finish => sub {
my ($self, $result) = @_;
CrawlApache->new($link);
});
}
}
};
1;
package main;
use strict;
use utf8;
use warnings qw(all);
use AnyEvent::Net::Curl::Queued;
my $q = AnyEvent::Net::Curl::Queued->new;
$q->append(sub {
CrawlApache->new('http://localhost/manual/')
});
$q->wait;
#!/usr/bin/env perl
# ABSTRACT: Yet Another Download Accelerator CLI wrapper
# PODNAME: yada
use strict;
use utf8;
use warnings qw(all);
use Config;
use Fcntl;
use File::Copy;
use Getopt::Long;
use IO::Handle;
use List::Util qw(shuffle);
use Pod::Usage;
use URI;
eg/CrawlApache.pm view on Meta::CPAN
package CrawlApache;
use strict;
use utf8;
use warnings qw(all);
use feature qw(say);
use Moo;
use MooX::Types::MooseLike::Base qw(InstanceOf);
use Web::Scraper::LibXML;
extends 'YADA::Worker';
has scrap => (
eg/Gauge/AnyEvent_Curl_Multi.pm view on Meta::CPAN
package Gauge::AnyEvent_Curl_Multi;
use strict;
use utf8;
use warnings qw(all);
use Any::Moose;
with qw(Gauge::Role);
use AnyEvent;
use AnyEvent::Curl::Multi;
use HTTP::Request::Common qw(GET);
use WWW::Curl::Easy;
eg/Gauge/Furl.pm view on Meta::CPAN
package Gauge::Furl;
use strict;
use utf8;
use warnings qw(all);
use Any::Moose;
with qw(Gauge::Role);
use Furl;
sub run {
my ($self) = @_;
eg/Gauge/HTTP_Lite.pm view on Meta::CPAN
package Gauge::HTTP_Lite;
use strict;
use utf8;
use warnings qw(all);
use Any::Moose;
with qw(Gauge::Role);
use HTTP::Lite;
sub run {
my ($self) = @_;
eg/Gauge/HTTP_Tiny.pm view on Meta::CPAN
package Gauge::HTTP_Tiny;
use strict;
use utf8;
use warnings qw(all);
use Any::Moose;
with qw(Gauge::Role);
use HTTP::Tiny;
sub run {
my ($self) = @_;
eg/Gauge/LWP_Curl.pm view on Meta::CPAN
package Gauge::LWP_Curl;
use strict;
use utf8;
use warnings qw(all);
use Any::Moose;
with qw(Gauge::Role);
use LWP::Curl;
sub run {
my ($self) = @_;
eg/Gauge/LWP_Protocol_Net_Curl.pm view on Meta::CPAN
package Gauge::LWP_Protocol_Net_Curl;
use strict;
use utf8;
use warnings qw(all);
use Any::Moose;
with qw(Gauge::Role);
use LWP::Protocol::Net::Curl;
use LWP::UserAgent;
sub run {
my ($self) = @_;
eg/Gauge/LWP_UserAgent.pm view on Meta::CPAN
package Gauge::LWP_UserAgent;
use strict;
use utf8;
use warnings qw(all);
use Any::Moose;
with qw(Gauge::Role);
use LWP::UserAgent;
sub run {
my ($self) = @_;
eg/Gauge/Mojo_UserAgent.pm view on Meta::CPAN
package Gauge::Mojo_UserAgent;
use strict;
use utf8;
use warnings qw(all);
use Any::Moose;
with qw(Gauge::Role);
use Mojolicious;
my $loop;
BEGIN { $loop = Mojo::IOLoop->singleton }
eg/Gauge/Parallel_Downloader.pm view on Meta::CPAN
package Gauge::Parallel_Downloader;
use strict;
use utf8;
use warnings qw(all);
use Any::Moose;
with qw(Gauge::Role);
use HTTP::Request::Common qw(GET);
use Parallel::Downloader;
sub run {
my ($self) = @_;
eg/Gauge/Role.pm view on Meta::CPAN
package Gauge::Role;
use autodie;
use feature qw(say);
use strict;
use utf8;
use warnings qw(all);
use Any::Moose q(::Role);
use Parallel::ForkManager;
use File::Temp;
requires qw(run);
has fork_manager=> (
is => 'ro',
eg/Gauge/WWW_Mechanize.pm view on Meta::CPAN
package Gauge::WWW_Mechanize;
use strict;
use utf8;
use warnings qw(all);
use Any::Moose;
with qw(Gauge::Role);
use WWW::Mechanize;
sub run {
my ($self) = @_;
eg/Gauge/YADA.pm view on Meta::CPAN
package Gauge::YADA;
use strict;
use utf8;
use warnings qw(all);
use Any::Moose;
with qw(Gauge::Role);
use YADA;
sub run {
my ($self) = @_;
eg/Gauge/curl.pm view on Meta::CPAN
package Gauge::curl;
use strict;
use utf8;
use warnings qw(all);
use Any::Moose;
with qw(Gauge::Role);
sub run {
my ($self) = @_;
my $curl_queue;
$self->run_forked(sub {
eg/Gauge/lftp.pm view on Meta::CPAN
package Gauge::lftp;
use strict;
use utf8;
use warnings qw(all);
use Any::Moose;
with qw(Gauge::Role);
sub run {
my ($self) = @_;
my $lftp_queue = File::Temp->new;
say $lftp_queue "set cmd:queue-parallel " . $self->parallel;
eg/Gauge/wget.pm view on Meta::CPAN
package Gauge::wget;
use strict;
use utf8;
use warnings qw(all);
use Any::Moose;
with qw(Gauge::Role);
sub run {
my ($self) = @_;
my $wget_queue;
$self->run_forked(sub {
eg/benchmark.pl view on Meta::CPAN
#!/usr/bin/env perl
use strict;
use utf8;
use warnings qw(all);
use Benchmark::Forking qw(cmpthese);
use Class::Load qw(load_class);
use File::Basename;
use File::Slurp;
use Getopt::Long;
use List::Util qw(shuffle);
use POSIX qw(nice);
eg/crawl-apache.pl view on Meta::CPAN
#!/usr/bin/env perl
use strict;
use utf8;
use warnings qw(all);
use Data::Printer;
use YADA;
use CrawlApache;
my $q = YADA->new;
$q->append(sub {
CrawlApache->new('http://localhost/manual/')
eg/fetch-urls.pl view on Meta::CPAN
#!/usr/bin/env perl
## no critic (ProhibitMultiplePackages)
package MyDownloader;
use strict;
use utf8;
use warnings qw(all);
use Moo;
extends 'YADA::Worker';
has '+use_stats'=> (default => sub { 1 });
has '+retry' => (default => sub { 10 });
after init => sub {
eg/fetch-urls.pl view on Meta::CPAN
my $self = shift;
return 1 if $self->$orig(@_);
return 1 if $self->getinfo('response_code') =~ m{^5[0-9]{2}$}x;
};
1;
package main;
use strict;
use utf8;
use warnings qw(all);
use Carp;
use Data::Printer;
use YADA;
my $q = YADA->new(
max => 8,
timeout => 30,
eg/simple.pl view on Meta::CPAN
#!/usr/bin/env perl
use feature qw(say);
use strict;
use utf8;
use warnings qw(all);
use YADA;
YADA->new->append(
[qw[
http://www.cpan.org/modules/by-category/02_Language_Extensions/
http://www.cpan.org/modules/by-category/02_Perl_Core_Modules/
http://www.cpan.org/modules/by-category/03_Development_Support/
http://www.cpan.org/modules/by-category/04_Operating_System_Interfaces/
eg/yada-crawler.pl view on Meta::CPAN
#!/usr/bin/env perl
use 5.016;
use common::sense;
use utf8::all;
use Web::Scraper::LibXML;
use YADA;
YADA->new(common_opts => { encoding => '' }, http_response => 1, max => 4)
->append([qw[http://localhost/manual/]] => sub {
my ($self) = @_;
return if not $self->response->is_success
or not $self->response->content_is_html;
my $doc = scraper {
inc/Test/HTTP/AnyEvent/Server.pm view on Meta::CPAN
package Test::HTTP::AnyEvent::Server;
# ABSTRACT: the async counterpart to Test::HTTP::Server
use feature qw(state switch);
use strict;
use utf8;
use warnings qw(all);
use AnyEvent;
use AnyEvent::Handle;
use AnyEvent::Log;
use AnyEvent::Socket;
use AnyEvent::Util;
use HTTP::Headers;
use HTTP::Request;
use HTTP::Response;
inc/Test/HTTP/AnyEvent/Server.pm view on Meta::CPAN
return;
}
1;
__END__
=pod
=encoding utf8
=head1 NAME
Test::HTTP::AnyEvent::Server - the async counterpart to Test::HTTP::Server
=head1 VERSION
version 0.007
=head1 SYNOPSIS
lib/AnyEvent/Net/Curl/Const.pm view on Meta::CPAN
package AnyEvent::Net::Curl::Const;
# ABSTRACT: Access Net::Curl::* constants by name
use strict;
use utf8;
use warnings qw(all);
use Carp qw(carp);
use Net::Curl::Easy;
use Scalar::Util qw(looks_like_number);
our $VERSION = '0.049'; # VERSION
my (%const_info, %const_opt);
lib/AnyEvent/Net/Curl/Queued.pm view on Meta::CPAN
package AnyEvent::Net::Curl::Queued;
# ABSTRACT: Moo wrapper for queued downloads via Net::Curl & AnyEvent
use strict;
use utf8;
use warnings qw(all);
use AnyEvent;
use Carp qw(confess);
use Moo;
use MooX::Types::MooseLike::Base qw(
AnyOf
ArrayRef
Bool
HashRef
lib/AnyEvent/Net/Curl/Queued.pm view on Meta::CPAN
version 0.049
=head1 SYNOPSIS
#!/usr/bin/env perl
package CrawlApache;
use feature qw(say);
use strict;
use utf8;
use warnings qw(all);
use HTML::LinkExtor;
use Moo;
extends 'AnyEvent::Net::Curl::Queued::Easy';
after finish => sub {
my ($self, $result) = @_;
lib/AnyEvent/Net/Curl/Queued.pm view on Meta::CPAN
CrawlApache->new($link);
});
}
}
};
1;
package main;
use strict;
use utf8;
use warnings qw(all);
use AnyEvent::Net::Curl::Queued;
my $q = AnyEvent::Net::Curl::Queued->new;
$q->append(sub {
CrawlApache->new('http://localhost/manual/')
});
$q->wait;
lib/AnyEvent/Net/Curl/Queued/Easy.pm view on Meta::CPAN
package AnyEvent::Net::Curl::Queued::Easy;
# ABSTRACT: Net::Curl::Easy wrapped by Moo
use feature qw(switch);
use strict;
use utf8;
use warnings qw(all);
use Carp qw(carp confess);
use Digest::SHA;
use Encode;
use HTTP::Response;
use JSON;
use Moo;
use MooX::Types::MooseLike::Base qw(
AnyOf
lib/AnyEvent/Net/Curl/Queued/Easy.pm view on Meta::CPAN
use AnyEvent::Net::Curl::Const;
use AnyEvent::Net::Curl::Queued::Stats;
no if ($] >= 5.017010), warnings => q(experimental);
our $VERSION = '0.049'; # VERSION
has json => (
is => 'ro',
isa => InstanceOf['JSON'],
default => sub { JSON->new->utf8->allow_blessed->convert_blessed },
lazy => 1,
);
has curl_result => (is => 'ro', isa => Object, writer => 'set_curl_result');
has data => (is => 'ro', isa => ScalarRef, writer => 'set_data');
lib/AnyEvent/Net/Curl/Queued/Easy.pm view on Meta::CPAN
# return the signature
return $digest;
}
sub sign {
my ($self, $str) = @_;
# add entropy to the signature
## no critic (ProtectPrivateSubs)
Encode::_utf8_off($str);
return $self->sha->add($str);
}
sub init {
my ($self) = @_;
# buffers
my $data = '';
$self->set_data(\$data);
lib/AnyEvent/Net/Curl/Queued/Easy.pm view on Meta::CPAN
sub _setopt_postfields {
my ($self, $val) = @_;
my $is_json = 0;
if ('HASH' eq ref $val) {
++$is_json;
$val = $self->json->encode($val);
} else {
# some DWIMmery here!
# application/x-www-form-urlencoded is supposed to have a 7-bit encoding
$val = encode_utf8($val)
if utf8::is_utf8($val);
my $obj;
++$is_json if 'HASH' eq ref($obj = eval { $self->json->decode($val) });
}
return ($self->set_post_content($val), $is_json);
}
sub _setopt_encoding {
my ($self, $val) = @_;
lib/AnyEvent/Net/Curl/Queued/Easy.pm view on Meta::CPAN
AnyEvent::Net::Curl::Queued::Easy - Net::Curl::Easy wrapped by Moo
=head1 VERSION
version 0.049
=head1 SYNOPSIS
package MyIEDownloader;
use strict;
use utf8;
use warnings qw(all);
use Moo;
use Net::Curl::Easy qw(/^CURLOPT_/);
extends 'AnyEvent::Net::Curl::Queued::Easy';
after init => sub {
my ($self) = @_;
lib/AnyEvent/Net/Curl/Queued/Multi.pm view on Meta::CPAN
package AnyEvent::Net::Curl::Queued::Multi;
# ABSTRACT: Net::Curl::Multi wrapped by Moo
use strict;
use utf8;
use warnings qw(all);
use AnyEvent;
use Carp qw(confess);
use Moo;
use MooX::Types::MooseLike::Base qw(
AnyOf
ArrayRef
HashRef
Int
lib/AnyEvent/Net/Curl/Queued/Stats.pm view on Meta::CPAN
package AnyEvent::Net::Curl::Queued::Stats;
# ABSTRACT: Connection statistics for AnyEvent::Net::Curl::Queued::Easy
use strict;
use utf8;
use warnings qw(all);
use AnyEvent;
use Carp qw(confess);
use Moo;
use MooX::Types::MooseLike::Base qw(HashRef Num);
use AnyEvent::Net::Curl::Const;
our $VERSION = '0.049'; # VERSION
lib/YADA.pm view on Meta::CPAN
package YADA;
# ABSTRACT: "Yet Another Download Accelerator": alias for AnyEvent::Net::Curl::Queued
use feature qw(switch);
use strict;
use utf8;
use warnings qw(all);
use Digest::SHA qw(sha256_base64);
use Moo;
use MooX::Types::MooseLike::Base qw(
ArrayRef
HashRef
Object
Str
);