X-Git-Url: http://git.ieval.ro/?p=gruntmaster-daemon.git;a=blobdiff_plain;f=lib%2FGruntmaster%2FDaemon.pm;h=7fef7f68dd6334508d1fe09732aa61c4557b4a08;hp=4712ed05e7559d54a329f157a98358e54d54bd44;hb=40b036b58f25bbc3e42db9fd4dc25249f87e1e94;hpb=be3e5b329715f729ad21f9462e6419d087ba8bcb diff --git a/lib/Gruntmaster/Daemon.pm b/lib/Gruntmaster/Daemon.pm index 4712ed0..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) @@ -71,8 +81,8 @@ sub process{ }; $meta->{tests} = decode_json $jobr->problem->tests if $meta->{runner} eq 'File'; - $meta->{ver} = { - name => 'ver.cpp', + $meta->{files}{ver} = { + 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/";