Aion-Surf
view release on metacpan or search on metacpan
lib/Aion/Surf.pm view on Meta::CPAN
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(@) {
my $method = $_[0] =~ /^(\w+)\z/ ? shift: "GET";
my $url = shift;
my $headers;
my $data = ref $_[0]? shift: undef;
$headers = $data, undef $data if $method =~ /^(GET|HEAD)\z/n;
my %set = @_;
if(exists $set{sleep}) {
my $sleep = delete $set{sleep};
lib/Aion/Surf.pm view on Meta::CPAN
my $content = $response->decoded_content;
eval { $content = Aion::Format::Json::from_json($content) } if $content =~ m!^\{!;
$content
}
sub head (;$) { my $x = @_ == 0? $_: shift; surf HEAD => ref $x? @{$x}: $x }
sub get (;$) { my $x = @_ == 0? $_: shift; surf GET => ref $x? @{$x}: $x }
sub post (@) { my $x = @_ == 0? $_: \@_; surf POST => ref $x? @{$x}: $x }
sub put (@) { my $x = @_ == 0? $_: \@_; surf PUT => ref $x? @{$x}: $x }
sub patch(@) { my $x = @_ == 0? $_: \@_; surf PATCH => ref $x? @{$x}: $x }
sub del (;$) { my $x = @_ == 0? $_: shift; surf DELETE => ref $x? @{$x}: $x }
use config TELEGRAM_BOT_TOKEN => undef;
# ÐÑпÑавлÑÐµÑ ÑообÑение ÑелегÑам
sub chat_message($$) {
my ($chat_id, $message) = @_;
my $ok = post "https://api.telegram.org/bot${\ TELEGRAM_BOT_TOKEN}/sendMessage", response => \my $response, json => {
chat_id => $chat_id,
text => $message,
disable_web_page_preview => 1,
parse_mode => 'Html',
};
die $ok->{description} if !$ok->{ok};
$ok
}
use config TELEGRAM_BOT_CHAT_ID => undef;
use config TELEGRAM_BOT_TECH_ID => undef;
# ÐÑпÑавлÑÐµÑ ÑообÑение в ÑелегÑам-боÑ
sub bot_message(;$) { chat_message TELEGRAM_BOT_CHAT_ID, @_ == 0? $_: $_[0] }
# ÐÑпÑавлÑÐµÑ ÑообÑение в ÑеÑ
ниÑеÑкий ÑелегÑам канал
sub tech_message(;$) { chat_message TELEGRAM_BOT_TECH_ID, @_ == 0? $_: $_[0] }
# ÐолÑÑÐ°ÐµÑ Ð¿Ð¾Ñледние ÑообÑÐµÐ½Ð¸Ñ Ð¾ÑпÑавленнÑе боÑÑ
sub bot_update() {
my @updates;
for(my $offset = 0;;) {
my $ok = post "https://api.telegram.org/bot${\ TELEGRAM_BOT_TOKEN}/getUpdates", json => {
offset => $offset,
};
die $ok->{description} if !$ok->{ok};
( run in 0.229 second using v1.01-cache-2.11-cpan-cba739cd03b )