Pending Review из разных турниров

Обсуждение вопросов, связанных с системой проведения турниров ejudge.
Post Reply
sushiymacroterran
Posts:1
Joined:21 August 2016, 16:36
Pending Review из разных турниров

Post by sushiymacroterran » 21 August 2016, 17:51

Добрый день.

Возможно ли посмотреть все посылки, имеющие статус Pending Review, находящиеся в разных турнирах? Или для этого обязательно заходить в каждый турнир и проверять отдельно?

И ещё один вопрос: есть ли возможность объединять скорборды нескольких турниров в один или для этого нужно писать скрипт, который будет парсить standings.html из нужных контестов?

Спасибо.

cher
Posts:1153
Joined:13 March 2004, 17:00
Contact:

Re: Pending Review из разных турниров

Post by cher » 23 August 2016, 14:54

Такие возможности есть в планах, но пока не реализованы.

dk
Posts:129
Joined:25 March 2006, 19:37
Location:Москва, школа 179
Contact:

Re: Pending Review из разных турниров

Post by dk » 24 August 2016, 20:48

Дарю свою программу на перле, которая умеет это делать. И отправляет на почту список таких контестов, с указанием числа непроверенных задач!

Code: Select all

#!/usr/bin/perl -w

# Необязательные параметры запуска
# -c <список номеров контестов через запятую>
# -m <список адресов почты через пробел>

use Getopt::Std;
our %Options;

getopts("u:c:m:",\%Options);

my $user=$Options{u};

my $contests=$Options{c};

my $query;

$query = "select contest_id, count(*) from runs where status = 16 and user_id > 1 ";

if (defined($user))
{
    my $flag = 1;
    open CONFIG, "<", "/home/" . $user . "/.ejudge.conf" or $flag = 0;
    if($flag)
    {
        while(<CONFIG>)
        {
            s/#.*//;
            s/\s*$//;
            if(length($_) > 0)
            {
                $query = $query . "and " . $_ . " ";
            }
        }
    }
}

$query = $query . " group by contest_id order by contest_id;";

open(IN,"mysql ejudge -e '" . $query . "' -N|");

my $msgbody="";

while(<IN>)
{
                if(/(\d+)\s+(\d+)/)
                {
                        $msgbody .= "\t$2\t$1\thttp://server.179.ru/cgi-bin/new-master?contest_id=$1\n";
                        print "\t$2\t$1\n";
                }
}
close(IN);

if(length($msgbody)>0 and defined($user))
{
        my $email = $user . "\@179.ru";
        open(OUT,"|mail -s 'Ejudge at server.179.ru: new submits' " . $email);
        print OUT "Information about pending review solutions at server.179.ru\n";
        print OUT $msgbody;
        close(OUT);
}

if(length($msgbody) == 0)
{
                print "No new submits - no report\n";
}

Post Reply