--- /dev/null
+#!/usr/bin/perl -w
+use v5.14;
+use Gruntmaster::Data;
+use Gruntmaster::OldData;
+
+use JSON qw/encode_json/;
+
+my $db = Gruntmaster::Data->connect('dbi:Pg:');
+
+for (users) {
+ $db->users->create({
+ id => $_,
+ name => user_name,
+ email => user_email,
+ town => user_town,
+ university => user_university,
+ level => user_level,
+ user_lastjob() ? (lastjob => user_lastjob) : ()
+ })
+}
+
+my @jobs;
+
+for (problems) {
+ my $meta = problem_meta;
+ $db->problems->create({
+ id => $_,
+ author => problem_author,
+ generator => problem_generator() // $meta->{generator},
+ judge => problem_judge() // $meta->{judge},
+ level => problem_level,
+ name => problem_name,
+ olimit => problem_olimit() // $meta->{olimit},
+ owner => problem_owner,
+ private => (problem_private() ? 1 : 0),
+ runner => problem_runner() // $meta->{runner},
+ statement => problem_statement,
+ testcnt => problem_testcnt() // $meta->{testcnt},
+ timeout => problem_timeout() // $meta->{timeout},
+ exists $meta->{files} ? (versource => $meta->{files}{ver}{content}, verformat => $meta->{files}{ver}{format}) : ()
+ })
+}
+
+for (contests) {
+ $db->contests->create({
+ id => $_,
+ name => contest_name,
+ start => contest_start,
+ stop => contest_end,
+ owner => contest_owner,
+ });
+ local $Gruntmaster::OldData::contest = $_;
+ for (problems) {
+ $db->contest_problems->create({
+ contest => $Gruntmaster::OldData::contest,
+ problem => $_,
+ });
+ }
+ for (1 .. jobcard) {
+ eval {
+ my $meta = job_inmeta;
+ push @jobs, {
+ contest => $Gruntmaster::OldData::contest,
+ daemon => job_daemon,
+ date => job_date,
+ defined job_errors() ? (errors => job_errors) : (),
+ extension => job_extension,
+ format => $meta->{files}{prog}{format},
+ job_private() ? (private => job_private) : (),
+ problem => job_problem,
+ result => job_result,
+ result_text => job_result_text,
+ results => encode_json job_results,
+ source => $meta->{files}{prog}{content},
+ owner => job_user,
+ };
+ }
+ }
+}
+
+for (1 .. jobcard) {
+ eval{
+ my $meta = job_inmeta;
+ push @jobs, {
+ daemon => job_daemon,
+ date => job_date,
+ defined job_errors() ? (errors => job_errors) : (),
+ extension => job_extension,
+ format => $meta->{files}{prog}{format},
+ job_private() ? (private => job_private) : (),
+ problem => job_problem,
+ result => job_result,
+ result_text => job_result_text,
+ results => encode_json job_results,
+ source => $meta->{files}{prog}{content},
+ owner => job_user,
+ };
+ }
+}
+
+@jobs = map { $_->{owner} = $_->{owner} eq 'S7012MY' ? 'Petru' : $_->{owner}; $_} @jobs;
+$db->jobs->create($_) for sort {$a->{date} <=> $b->{date}} @jobs;