- set_job_result $job, $meta->{result};
- set_job_result_text $job, $meta->{result_text};
- set_job_results $job, \@full_results if scalar @full_results;
- set_job_errors $job, $errors;
-
- my $log = $Gruntmaster::Data::contest ? "ct/$Gruntmaster::Data::contest/log" : 'log';
-
- PUBLISH gensrc => ($Gruntmaster::Data::contest // '') . ".$job";
- PUBLISH genpage => "$log/job/$job.html";
- PUBLISH genpage => "$log/index.html";
- PUBLISH genpage => "$log/st.html";
- my $page = ($job + PAGE_SIZE - 1) / PAGE_SIZE;
- PUBLISH genpage => "$log/@{[$page - 1]}.html";
- PUBLISH genpage => "$log/$page.html";
- PUBLISH genpage => "$log/@{[$page + 1]}.html";
-
- purge "/$log/job/$job";
+ return unless $jobr;
+ $jobr->update({
+ result => $meta->{result},
+ result_text => $meta->{result_text},
+ results => encode_json $meta->{results},
+ $errors ? (errors => $errors) : ()
+ });
+
+ my $log = $jobr->contest ? 'ct/' . $jobr->contest->id . '/log' : 'log';
+ my $page = int (($job + PAGE_SIZE - 1) / PAGE_SIZE);
+
+ purge "/$log/$job";