]> iEval git - plack-app-gruntmaster.git/blobdiff - lib/Gruntmaster/Data.pm
Add article support
[plack-app-gruntmaster.git] / lib / Gruntmaster / Data.pm
index 9504cf849b7220c6e658fc16c33a283cc5f2fd57..bf5d2e1a808e9e1067544df673b95fad2a143de9 100644 (file)
@@ -17,12 +17,12 @@ sub dynsub{
 }
 
 BEGIN {
-       for my $cmd (qw/multi exec smembers get hget hset sadd srem incr hmset hsetnx/) {
-               dynsub uc $cmd, sub { say "Arguments to \U$cmd: ", join ', ', @_; $redis->$cmd(@_) };
+       for my $cmd (qw/multi exec smembers get hget hdel hset sadd srem incr hmset hsetnx publish/) {
+               dynsub uc $cmd, sub { $redis->$cmd(@_) };
        }
 
-       for my $cmd (qw/publish subscribe wait_for_messages/) {
-               dynsub uc $cmd, sub { say "Arguments to \U$cmd: ", join ', ', @_; $pubsub->$cmd(@_) };
+       for my $cmd (qw/subscribe wait_for_messages/) {
+               dynsub uc $cmd, sub { $pubsub->$cmd(@_) };
        }
 }
 
@@ -33,6 +33,7 @@ sub rexec                             ()              { EXEC }
 
 sub problems                   ()              { SMEMBERS cp . 'problem' }
 sub contests                   ()              { SMEMBERS cp . 'contest' }
+sub users                              ()              { SMEMBERS cp . 'user' }
 sub jobcard                            ()              { GET cp . 'job' }
 
 sub job_results                        (_)             { decode_json HGET cp . "job.$_[0]", 'results' }
@@ -51,6 +52,11 @@ sub defhash{
                dynsub "set_${name}_$key", sub ($$) { HSET cp . "$name.$_[0]", $key, $_[1] };
        }
 
+       dynsub "edit_$name", sub {
+               my ($key, %values) = @_;
+               HMSET cp . "$name.$key", %values;
+       };
+
        dynsub "insert_$name", sub {
                my ($key, %values) = @_;
                SADD cp . $name, $key or return;
@@ -68,12 +74,16 @@ sub defhash{
        };
 }
 
-defhash problem => qw/name level statement/;
+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 user => qw/name email town university/;
+defhash user => qw/name email town university level/;
+
+sub clean_job (_){
+       HDEL cp . "job.$_[0]", qw/result result_text results daemon/
+}
 
-our @EXPORT_OK = do {
+our @EXPORT = do {
        no strict 'refs';
        grep { $_ =~ /^[a-zA-Z]/ and exists &$_ } keys %{__PACKAGE__ . '::'};
 };
This page took 0.025446 seconds and 4 git commands to generate.