Aion-Surf
view release on metacpan or search on metacpan
"Test::CPAN::Meta" : "0",
"Test::MinimumVersion::Fast" : "0.04",
"Test::PAUSE::Permissions" : "0.07",
"Test::Pod" : "1.41",
"Test::Spellunker" : "v0.2.7"
}
},
"runtime" : {
"requires" : {
"Aion::Format" : "v0.0.2",
"HTTP::Cookies" : "0",
"LWP::UserAgent" : "6.72",
"List::Util" : "0",
"common::sense" : "0",
"perl" : "v5.22.0"
}
},
"test" : {
"requires" : {
"Test::More" : "0.98"
}
- eg
- examples
- author
- builder
provides:
Aion::Surf:
file: lib/Aion/Surf.pm
version: v0.0.3
requires:
Aion::Format: v0.0.2
HTTP::Cookies: '0'
LWP::UserAgent: '6.72'
List::Util: '0'
common::sense: '0'
perl: v5.22.0
resources:
bugtracker: https://github.com/darviarush/perl-aion-surf/issues
homepage: https://github.com/darviarush/perl-aion-surf
repository: https://github.com/darviarush/perl-aion-surf.git
version: 0.0.3
x_authority: cpan:DART
* `response` - returns response (as HTTP::Response) by this reference.
```perl
my $req = "MAYBE_ANY_METHOD https://ya.ru/page?z=30&x=10&y=%1F9E8
Accept: */*,image/*
Content-Type: application/x-www-form-urlencoded
x&y=2
";
my $req_cookies = 'Set-Cookie3: go=""; path="/"; domain=ya.ru; version=0
Set-Cookie3: session=%1F9E8; path="/page"; domain=ya.ru; version=0
';
# mock
*LWP::UserAgent::request = sub {
my ($ua, $request) = @_;
$request->as_string # -> $req
$ua->cookie_jar->as_string # -> $req_cookies
my $response = HTTP::Response->new(200, "OK");
requires 'Liveman', '1.0';
};
on 'test' => sub {
requires 'Test::More', '0.98';
};
requires 'common::sense';
requires 'List::Util';
requires 'LWP::UserAgent', '6.72';
requires 'HTTP::Cookies';
requires 'Aion::Format', '0.0.2';
lib/Aion/Surf.md view on Meta::CPAN
* `response` - returns response (as HTTP::Response) by this reference.
```perl
my $req = "MAYBE_ANY_METHOD https://ya.ru/page?z=30&x=10&y=%1F9E8
Accept: */*,image/*
Content-Type: application/x-www-form-urlencoded
x&y=2
";
my $req_cookies = 'Set-Cookie3: go=""; path="/"; domain=ya.ru; version=0
Set-Cookie3: session=%1F9E8; path="/page"; domain=ya.ru; version=0
';
# mock
*LWP::UserAgent::request = sub {
my ($ua, $request) = @_;
$request->as_string # -> $req
$ua->cookie_jar->as_string # -> $req_cookies
my $response = HTTP::Response->new(200, "OK");
lib/Aion/Surf.pm view on Meta::CPAN
package Aion::Surf;
use 5.22.0;
no strict; no warnings; no diagnostics;
use common::sense;
our $VERSION = "0.0.3";
use List::Util qw/pairmap/;
use LWP::UserAgent qw//;
use HTTP::Cookies qw//;
use Aion::Format::Json qw//;
use Aion::Format::Url qw//;
use Exporter qw/import/;
our @EXPORT = our @EXPORT_OK = grep {
ref \$Aion::Surf::{$_} eq "GLOB"
&& *{$Aion::Surf::{$_}}{CODE}
&& !/^(_|(NaN|import)\z)/n
} keys %Aion::Surf::;
lib/Aion/Surf.pm view on Meta::CPAN
use config TIMEOUT => 10;
use config FROM_IP => undef;
use config AGENT => q{Mozilla/5.0 (Macintosh; Intel Mac OS X 14_0) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Safari/605.1.15};
our $ua = LWP::UserAgent->new;
$ua->agent(AGENT);
#$ua->env_proxy;
$ua->timeout(TIMEOUT);
$ua->local_address(FROM_IP) if FROM_IP;
$ua->cookie_jar(HTTP::Cookies->new);
# ÐÐµÐ¶Ð´Ñ Ð²Ñзовами делаем ÑлÑÑайнÑй инÑеÑвал (Ð´Ð»Ñ Ð³Ñаббинга - ÑÑÐ¾Ð±Ñ Ð½Ðµ бÑÑÑ Ð·Ð°Ð±Ð»Ð¾ÐºÐ¸ÑованнÑм за авÑомаÑиÑеÑкие обÑаÑениÑ)
our $SLEEP = 0;
our $LAST_REQUEST = Time::HiRes::time();
sub _sleep(;$) {
Time::HiRes::sleep(rand + .5) if Time::HiRes::time() - $LAST_REQUEST < 2;
$LAST_REQUEST = Time::HiRes::time();
}
sub surf(@) {
lib/Aion/Surf.pm view on Meta::CPAN
=back
my $req = "MAYBE_ANY_METHOD https://ya.ru/page?z=30&x=10&y=%1F9E8
Accept: */*,image/*
Content-Type: application/x-www-form-urlencoded
x&y=2
";
my $req_cookies = 'Set-Cookie3: go=""; path="/"; domain=ya.ru; version=0
Set-Cookie3: session=%1F9E8; path="/page"; domain=ya.ru; version=0
';
# mock
*LWP::UserAgent::request = sub {
my ($ua, $request) = @_;
$request->as_string # -> $req
$ua->cookie_jar->as_string # -> $req_cookies
my $response = HTTP::Response->new(200, "OK");
t/aion/surf.t view on Meta::CPAN
# * `response` - returns response (as HTTP::Response) by this reference.
#
done_testing; }; subtest 'surf (\[$method], $url, \[$data], %params)' => sub {
my $req = "MAYBE_ANY_METHOD https://ya.ru/page?z=30&x=10&y=%1F9E8
Accept: */*,image/*
Content-Type: application/x-www-form-urlencoded
x&y=2
";
my $req_cookies = 'Set-Cookie3: go=""; path="/"; domain=ya.ru; version=0
Set-Cookie3: session=%1F9E8; path="/page"; domain=ya.ru; version=0
';
# mock
*LWP::UserAgent::request = sub {
my ($ua, $request) = @_;
::is scalar do {$request->as_string}, scalar do{$req}, ' $request->as_string # -> $req';
::is scalar do {$ua->cookie_jar->as_string}, scalar do{$req_cookies}, ' $ua->cookie_jar->as_string # -> $req_cookies';
my $response = HTTP::Response->new(200, "OK");
( run in 0.986 second using v1.01-cache-2.11-cpan-e9199f4ba4c )