X-Git-Url: http://git.ieval.ro/?a=blobdiff_plain;f=redis-to-postgres;fp=redis-to-postgres;h=0000000000000000000000000000000000000000;hb=426c4f0f465f127ef0a428660f82c0189018e6b2;hp=e744c05f4a430c9c3744098fc6dd404d7e7b8e1d;hpb=cbb36c78b915857f6b36ed94b99cdf71bfd7fca2;p=gruntmaster-data.git diff --git a/redis-to-postgres b/redis-to-postgres deleted file mode 100755 index e744c05..0000000 --- a/redis-to-postgres +++ /dev/null @@ -1,124 +0,0 @@ -#!/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, - phone => user_phone, - 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}, - (problem_runner() // $meta->{runner}) eq 'File' ? (tests => encode_json $meta->{tests}) : (), - 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) { - eval { - 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}, - (problem_runner() // $meta->{runner}) eq 'File' ? (tests => encode_json $meta->{tests}) : (), - exists $meta->{files} ? (versource => $meta->{files}{ver}{content}, verformat => $meta->{files}{ver}{format}) : () - }) - }; - $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;