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',
use constant FORMAT_EXTENSION => {
C => 'c',
CPP => 'cpp',
+ GCCGO => 'go',
+ GOLANG => 'go',
+ HASKELL => 'hs',
MONO => 'cs',
JAVA => 'java',
PASCAL => 'pas',
$params = $title;
$title = 'No title';
}
+ $params->{time} = time;
bless {template => $template, title => $title, params => $params}, __PACKAGE__.'::Response'
}
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);