X-Git-Url: http://git.ieval.ro/?a=blobdiff_plain;f=lib%2FPlack%2FApp%2FGruntmaster.pm;h=4dd497f742c966d5ac164f67cd65dfab89ec950b;hb=9a4806b3c49eef940ac5d2d2b38f9d47b346d544;hp=3c26ecfd0cbd69a9151fdb0ece3037eb60193be6;hpb=3b69df7a785bbfc5b8c4a1719c046f9800aa3548;p=gruntmaster-page.git diff --git a/lib/Plack/App/Gruntmaster.pm b/lib/Plack/App/Gruntmaster.pm index 3c26ecf..4dd497f 100644 --- a/lib/Plack/App/Gruntmaster.pm +++ b/lib/Plack/App/Gruntmaster.pm @@ -28,6 +28,8 @@ use constant CONTENT_TYPES => +{ c => 'text/x-csrc', cpp => 'text/x-c++src', cs => 'text/x-csharp', # Used by GNOME. Not in mime.types. + go => 'text/plain', # ? + hs => 'text/x-haskell', java => 'text/x-java', pas => 'text/x-pascal', pl => 'text/x-perl', @@ -37,6 +39,9 @@ use constant CONTENT_TYPES => +{ use constant FORMAT_EXTENSION => { C => 'c', CPP => 'cpp', + GCCGO => 'go', + GOLANG => 'go', + HASKELL => 'hs', MONO => 'cs', JAVA => 'java', PASCAL => 'pas', @@ -71,6 +76,7 @@ sub response { $params = $title; $title = 'No title'; } + $params->{time} = time; bless {template => $template, title => $title, params => $params}, __PACKAGE__.'::Response' } @@ -148,7 +154,9 @@ sub dispatch_request{ sub (/us/:user) { response us_entry => user->name, db->user_entry($_{user}) }, sub (/ct/:contest) { response ct_entry => contest->name, db->contest_entry($_{contest}) }, sub (/log/:job) { response log_entry => "Job $_{job}", db->job_entry($_{job}) }, - sub (/pb/:problem + ?:contest~) { + sub (/pb/:problem + ?contest~) { + my (undef, undef, $contest) = @_; + $_{contest} = $contest; return NOT_FOUND if !contest && !problem->is_in_archive || contest && !db->contest_problems->find($_{contest}, $_{problem}); forbid problem->is_private; response pb_entry => problem->name, db->problem_entry($_{problem}, $_{contest}, remote_user && remote_user->id);