X-Git-Url: http://git.ieval.ro/?a=blobdiff_plain;f=lib%2FGruntmaster%2FData.pm;h=ab0fe36de464f11906686b1134a8bd872db5b8e7;hb=4623c9f2c2bd5309fcd57e9da2f2e18fe3dcdb45;hp=d8c7c310729fc0a9fe7107e7ed3e2a21dc3c2f16;hpb=6c0423f49be4a1e609bbcf961824097c07edbe1b;p=gruntmaster-data.git diff --git a/lib/Gruntmaster/Data.pm b/lib/Gruntmaster/Data.pm index d8c7c31..ab0fe36 100644 --- a/lib/Gruntmaster/Data.pm +++ b/lib/Gruntmaster/Data.pm @@ -51,7 +51,7 @@ sub purge; sub query { my ($stat, @extra) = @_; - $db->query($statements{$stat} // $stat, @extra) + $db->query($statements{$stat}, @extra) } my (%name_cache, %name_cache_time); @@ -117,7 +117,7 @@ sub problem_list { sub problem_entry { my ($id, $contest) = @_; - $contest &&= contest_entry ($contest); + $contest = contest_entry ($contest) if $contest; my $ret = add_names query(problem_entry_sth => $id)->hash; my $limits = query(limits_sth => $id)->hashes; $ret->{limits} = $limits if @$limits; @@ -188,7 +188,7 @@ sub job_list { sub job_entry { my ($id) = @_; my $ret = add_names query(job_entry_sth => $id)->hash; - $ret->{results} &&= decode_json $ret->{results}; + $ret->{results} = decode_json $ret->{results} if $ret->{results}; $ret } @@ -207,8 +207,7 @@ sub create_job { sub calc_score { my ($mxscore, $time, $tries, $totaltime) = @_; my $score = $mxscore; - $time = 0 if $time < 0; - $time = 300 if $time > $totaltime; + $time = 300 if $time > $totaltime; # uncoverable branch true does not happen anymore (only possible if opens are broken) $score = ($totaltime - $time) / $totaltime * $score; $score -= $tries / 10 * $mxscore; $score = $mxscore * 3 / 10 if $score < $mxscore * 3 / 10; @@ -234,7 +233,7 @@ sub standings { while (my $job = $jobs->hash) { my $open = $opens{$job->{problem}, $job->{owner}} // $ct->{start}; my $time = $job->{date} - $open; - next if $time < 0; + next if $time < 0; # uncoverable branch true job sent before contest is deprecated my $value = $values{$job->{problem}}; my $factor = $job->{result} ? 0 : 1; $factor = $1 / 100 if $job->{result_text} =~ /^(\d+ )/s;