]> iEval git - gruntmaster-page.git/blobdiff - lib/Gruntmaster/Data.pm
Exclude jobs sent before contest start from standings
[gruntmaster-page.git] / lib / Gruntmaster / Data.pm
index bf5d2e1a808e9e1067544df673b95fad2a143de9..1b2492cc28c6a07dc927edf30d4039ec9fe1e1eb 100644 (file)
@@ -17,7 +17,7 @@ sub dynsub{
 }
 
 BEGIN {
-       for my $cmd (qw/multi exec smembers get hget hdel hset sadd srem incr hmset hsetnx publish/) {
+       for my $cmd (qw/multi exec smembers get hget hdel hset sadd srem incr hmset hsetnx publish del/) {
                dynsub uc $cmd, sub { $redis->$cmd(@_) };
        }
 
@@ -65,6 +65,7 @@ sub defhash{
        dynsub "remove_$name", sub (_) {
                my $key = shift;
                SREM cp . $name, $key;
+               DEL cp . "$name.$key";
        };
 
        dynsub "push_$name", sub {
@@ -76,13 +77,23 @@ sub defhash{
 
 defhash problem => qw/name level statement owner author/;
 defhash contest => qw/start end name owner/;
-defhash job => qw/date extension filesize private problem result result_text user/;
+defhash job => qw/date errors extension filesize private problem result result_text user/;
 defhash user => qw/name email town university level/;
 
 sub clean_job (_){
        HDEL cp . "job.$_[0]", qw/result result_text results daemon/
 }
 
+sub mark_open {
+       my ($problem, $user) = @_;
+       HSETNX cp . 'open', "$problem.$user", time;
+}
+
+sub get_open {
+       my ($problem, $user) = @_;
+       HGET cp . 'open', "$problem.$user";
+}
+
 our @EXPORT = do {
        no strict 'refs';
        grep { $_ =~ /^[a-zA-Z]/ and exists &$_ } keys %{__PACKAGE__ . '::'};
This page took 0.027092 seconds and 4 git commands to generate.