mirror of
https://github.com/perlbot/perlbuut-pastebin
synced 2025-06-08 06:36:12 -04:00
44 lines
819 B
Perl
44 lines
819 B
Perl
package App::Controller::Eval;
|
|
|
|
use strict;
|
|
use warnings;
|
|
|
|
use Mojo::Base 'Mojolicious::Controller';
|
|
|
|
sub routes {
|
|
my ($class, $r) = @_;
|
|
|
|
my $route = sub {
|
|
my ($method, $route, $action) = @_;
|
|
$r->$method($route)->to(controller => 'eval', action => $action);
|
|
};
|
|
|
|
$route->(post => '/eval' => 'run_eval');
|
|
}
|
|
|
|
sub run_eval {
|
|
my ($self) = @_;
|
|
my $data = $self->req->body_params;
|
|
|
|
|
|
|
|
$self = $self->inactivity_timeout(3600);
|
|
|
|
my $code = $data->param('code') // '';
|
|
my $language = $data->param('language') // 'perl';
|
|
|
|
$self->delay(sub {
|
|
my $delay = shift;
|
|
$self->eval->get_eval(undef, $code, [$language], $delay->begin(0,1));
|
|
|
|
return 1;
|
|
},
|
|
sub {
|
|
my $delay = shift;
|
|
my ($output) = @_;
|
|
|
|
$self->render(json => {evalout => $output});
|
|
})
|
|
}
|
|
|
|
1;
|