36 lines
727 B
Perl
Executable File
36 lines
727 B
Perl
Executable File
#!/usr/bin/env perl
|
|
|
|
use v5.30.0;
|
|
|
|
use strict;
|
|
use warnings;
|
|
|
|
use Mojo::UserAgent;
|
|
use Mojo::DOM;
|
|
|
|
use Const::Fast;
|
|
|
|
const my $ALARM_NO_ERROR => q(Alarm defunction.);
|
|
|
|
my $ua = Mojo::UserAgent->new;
|
|
|
|
while (1) {
|
|
say "Searching data";
|
|
eval {
|
|
my $result = $ua->get(q(https://www.coingecko.com/en))->result->body;
|
|
my $dom = Mojo::DOM->new($result);
|
|
my $bitcoin = $dom->at(q(.coin-table))->find(q(tr))->[1];
|
|
say $bitcoin->all_text =~ s/(?:\s|\r|\n)+/ /gr;
|
|
local $SIG{ALRM} = sub {
|
|
die $ALARM_NO_ERROR;
|
|
};
|
|
alarm 60;
|
|
my $line = <STDIN>;
|
|
alarm 0;
|
|
};
|
|
if ($@) {
|
|
STDERR->say(qq($@)) unless $@ =~ /$ALARM_NO_ERROR/;
|
|
}
|
|
}
|
|
|