Peertube-dl/bin/peertube-dl-web.pl

37 lines
1.1 KiB
Perl

use Mojolicious::Lite -signatures;
use Peertube::DL::URLHandler;
get '/' => sub {
my $c = shift;
return $c->redirect_to('index.html');
};
post '/api' => sub {
my $c = shift;
my $url = $c->req->json->{url}
// ( return $c->render( text => 'Malformed request due missing url json parameter.', status => 400 ) );
my $render_returned;
eval { $render_returned = $c->render( json => Peertube::DL::URLHandler::getDownloadDataFromURL($url) ); };
if ($@) {
return $c->render( text => $@, status => 500 );
}
return $render_returned;
};
post '/proxy_to_get' => sub {
my $c = shift;
my $url = $c->req->json->{url}
// ( return $c->render( text => 'Malformed request due missing url json parameter.', status => 400 ) );
die "Not supported url" unless $url =~ s/^https:\/\///r =~ /^storage\.googleapis\.com/;
my $ua = Peertube::DL::URLHandler::generateUA();
return $c->render(
data => $ua->get($url)->decoded_content,
format => 'bin'
);
};
push @{ app->renderer->paths }, ('./templates');
push @{ app->static->paths }, ('./public');
app->start;