X-Git-Url: http://git.ieval.ro/?p=gruntmaster-daemon.git;a=blobdiff_plain;f=lib%2FGruntmaster%2FDaemon.pm;h=7fef7f68dd6334508d1fe09732aa61c4557b4a08;hp=d97305b0e8e7ec5c703498dc0bd757b6326f0d82;hb=40b036b58f25bbc3e42db9fd4dc25249f87e1e94;hpb=c8ca69c2d3eb9a0a8d890d003319eda6fbb651ff diff --git a/lib/Gruntmaster/Daemon.pm b/lib/Gruntmaster/Daemon.pm index d97305b..7fef7f6 100644 --- a/lib/Gruntmaster/Daemon.pm +++ b/lib/Gruntmaster/Daemon.pm @@ -20,6 +20,15 @@ use Log::Log4perl qw/get_logger/; use LWP::UserAgent; use constant PAGE_SIZE => 10; +use constant FORMAT_EXTENSION => { + C => 'c', + CPP => 'cpp', + MONO => 'cs', + JAVA => 'java', + PASCAL => 'pas', + PERL => 'pl', + PYTHON => 'py', +}; ################################################## @@ -44,6 +53,7 @@ sub safe_can { } sub purge { + get_logger->trace("Purging $_[0]"); for my $host (@purge_hosts) { my $req = HTTP::Request->new(PURGE => "http://$host$_[0]"); $ua->request($req) @@ -72,7 +82,7 @@ sub process{ $meta->{tests} = decode_json $jobr->problem->tests if $meta->{runner} eq 'File'; $meta->{files}{ver} = { - name => 'ver.cpp', + name => 'ver.' . FORMAT_EXTENSION->{$jobr->problem->verformat}, format => $jobr->problem->verformat, content => $jobr->problem->versource, } if $jobr->problem->verformat; @@ -128,8 +138,8 @@ sub process{ $errors ? (errors => $errors) : () }); - my $log = $jobr->contest ? 'ct/' . $jobr->contest . '/log' : 'log'; - my $page = ($job + PAGE_SIZE - 1) / PAGE_SIZE; + my $log = $jobr->contest ? 'ct/' . $jobr->contest->id . '/log' : 'log'; + my $page = int (($job + PAGE_SIZE - 1) / PAGE_SIZE); purge "/$log/$job"; purge "/$log/";