App-DrivePlayer
view release on metacpan or search on metacpan
lib/App/DrivePlayer/GUI.pm view on Meta::CPAN
log4perl.appender.Screen.layout=Log::Log4perl::Layout::PatternLayout
log4perl.appender.Screen.layout.ConversionPattern=%d [%p] %m%n
log4perl.appender.File=Log::Log4perl::Appender::File
log4perl.appender.File.filename=$file
log4perl.appender.File.utf8=1
log4perl.appender.File.layout=Log::Log4perl::Layout::PatternLayout
log4perl.appender.File.layout.ConversionPattern=%d [%p] %m%n
";
if (eval { require Log::Log4perl; 1 }) {
Log::Log4perl->init(\$log4perl_conf);
binmode STDERR, ':encoding(UTF-8)';
}
}
sub _init_api {
my ($self) = @_;
return $self->rest_api if $self->rest_api;
my $auth_cfg = $self->config->auth_config();
unless ($auth_cfg->{client_id} && $auth_cfg->{client_secret}) {
$self->_show_error(
lib/App/DrivePlayer/MetadataFetcher.pm view on Meta::CPAN
my $token = $self->token_fn->();
unless ($token) {
$log->warn("Fingerprint: no bearer token available") if $log;
return;
}
my $url = sprintf $DRIVE_URL, uri_escape_utf8($drive_id);
my $max = ($max_bytes // ($DOWNLOAD_MB * 1024 * 1024)) - 1;
my $ua = HTTP::Tiny->new(agent => $USER_AGENT, timeout => 30);
my ($fh, $tmpfile) = tempfile(SUFFIX => '.audio', UNLINK => 0);
binmode $fh;
my $res = $ua->request('GET', $url, {
headers => {
Authorization => $token,
Range => "bytes=0-$max",
},
data_callback => sub { print {$fh} $_[0] },
});
close $fh;
( run in 1.869 second using v1.01-cache-2.11-cpan-cdf2f3d4e48 )