]> iEval git - gruntmaster-page.git/blobdiff - lib/Gruntmaster/Page/Ct.pm
Use Redis and reindent code
[gruntmaster-page.git] / lib / Gruntmaster / Page / Ct.pm
index 5a04b3adc20cbe33a4b8c307b80ad8e4df28ec91..19c4aad33cc319d4504768eb2b7fc8c30c4ac47a 100644 (file)
@@ -9,16 +9,14 @@ our $VERSION = '0.001';
 
 use constant TITLE => 'Contests';
 
-use Fcntl qw/:flock/;
 use HTML::Template::Compiled;
-use IO::File;
 use POSIX qw/strftime/;
-use YAML::Any qw/LoadFile/;
 use Gruntmaster::Page::Common qw/header footer/;
+use Gruntmaster::Data qw/contest_name contest_start contest_end contest_owner/;
 
 my %templates = (
-  en => <<'HTML',
-<tmpl_if runningn>
+       en => <<'HTML',
+<tmpl_if running>
 <h1>Running contests</h1>
 <table border>
 <thead>
@@ -32,7 +30,7 @@ my %templates = (
 </table>
 </tmpl_if>
 
-<tmpl_if pendingn>
+<tmpl_if pending>
 <h1>Pending contests</h1>
 <table border>
 <thead>
@@ -46,7 +44,7 @@ my %templates = (
 </table>
 </tmpl_if>
 
-<tmpl_if finishedn>
+<tmpl_if finished>
 <h1>Finished contests</h1>
 <table border>
 <thead>
@@ -66,34 +64,26 @@ $templates{$_}  = header($_, TITLE) . $templates{$_} for keys %templates;
 $templates{$_} .= footer $_ for keys %templates;
 
 sub generate{
-  my $template = $templates{$_[1]};
-  my $htc = HTML::Template::Compiled->new(scalarref => \$template);
-  IO::File->new('>ct/meta.yml')->close unless -f 'ct/meta.yml';
-  flock my $metafh = IO::File->new('<ct/meta.yml'), LOCK_SH;
+       my $htc = HTML::Template::Compiled->new(scalarref => \$templates{$_[1]});
 
-  my (@running, @pending, @finished);
-  for (<ct/*/meta.yml>) {
-       my $meta = LoadFile $_;
-       my $id = (m,^ct/(.*)/meta.yml$,)[0];
-       my $ct = { id => $id,
-                          name => $meta->{name},
-                          start => strftime ('%c', localtime $meta->{start}),
-                          end => strftime ('%c', localtime $meta->{end}),
-                          owner => $meta->{owner}};
+       my (@running, @pending, @finished);
+       for (contests) {
+               my $ct = { id => $_,
+                                  name => contest_name,
+                                  start => strftime ('%c', localtime contest_start),
+                                  end => strftime ('%c', localtime contest_end),
+                                  owner => contest_owner };
 
-       my $time = time;
-       push @pending, $ct if time < $meta->{start};
-       push @running, $ct if time >= $meta->{start} && time < $meta->{end};
-       push @finished, $ct if time > $meta->{end};
-  }
+               my $time = time;
+               push @pending, $ct if time < contest_start;
+               push @running, $ct if time >= contest_start && time < contest_end;
+               push @finished, $ct if time > contest_end;
+       }
 
-  $htc->param(runningn => scalar @running);
-  $htc->param(pendingn => scalar @pending);
-  $htc->param(finishedn => scalar @finished);
-  $htc->param(running => \@running);
-  $htc->param(pending => \@pending);
-  $htc->param(finished => \@finished);
-  $htc->output
+       $htc->param(running => \@running);
+       $htc->param(pending => \@pending);
+       $htc->param(finished => \@finished);
+       $htc->output
 }
 
 1
This page took 0.027597 seconds and 4 git commands to generate.