Узнать список текущих и прошедших соревнований.

Обсуждение вопросов, связанных с системой проведения турниров ejudge.
Post Reply
nuriyevn
Posts:15
Joined:01 December 2014, 01:29
Contact:
Узнать список текущих и прошедших соревнований.

Post by nuriyevn » 01 December 2014, 02:08

Дорбый вечер.

Как в anon_select_contest_page достать start_time, stop_time из структуры serve_state_t?

Code: Select all

contest_extra *extra = get_contest_extra(i);
// вроде как грузится.
extra->serve_state - уже NULL.

Нужно подгрузить поля serve_state, видел serve_state_load_contest() - которая вероятно грузит serve_state, но для этого нужны доп. структуры (struct ejudge_config*)которых, понятное дело в anon_select_contest_page нет и не планировалось.

Так как решить проблему?
Изначально задача стоит так:
Разделить список соревнований по временной шкале: будущие (проверяется очень просто , contest_desc->reg_deadline), текущие соревнование и прошедшие.

Спасибо.


EDIT:
Версия: ejudge-2.3.29.1

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

Re: Узнать список текущих и прошедших соревнований.

Post by cher » 02 December 2014, 00:30

На этапе выбора соревнования анонимным пользователем полное состояние турнира может быть недоступно. Доступна только информация из XML-файла турнира.

nuriyevn
Posts:15
Joined:01 December 2014, 01:29
Contact:

Re: Узнать список текущих и прошедших соревнований.

Post by nuriyevn » 03 December 2014, 02:47

Можно ли создать юзера guest или даже роль, с низкими правами, чтобы при генерации этой страницы (anon_select_contest_page), происходил вход в систему, и каким-то образом брал оттуда данные.
Самое простое решение это кидаться туда сюда action-ами? ejudge-contest-cmd вроде как утилита которая может отправлять get-contest-status? Может вообще XML менять? Необходимы также текущие результаты тоже не видны из анонимной страницы.
То есть эта анонимная страничку сделать менее анонимной. Если это было бы внутри учебной группы, то да, зачем остальным смотреть на результаты, а если это free registration contest , то можно больше информации предоставить пользователю.

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

Re: Узнать список текущих и прошедших соревнований.

Post by cher » 03 December 2014, 12:37

Не очень понятно зачем.

Информация о текущих/будущих/прошедших есть в XML, текущие результаты есть в HTML-файлах результатов. Какой еще информации о контесте не хватает?

nuriyevn
Posts:15
Joined:01 December 2014, 01:29
Contact:

Re: Узнать список текущих и прошедших соревнований.

Post by nuriyevn » 04 December 2014, 09:46

1.
/home/judges/000217/var/status/dir/standings.html
Спасибо. Создал папки в htdocs и для каждого сделал хард линк на эти standings.html

os_GetWorkingDir() возвращает /home/ejudge
Как htdocs директорию получить? (у меня он в /var/www/html/ ) пока что, хардкодингом задаю папку.

2.
cher wrote:Информация о текущих/будущих/прошедших есть в XML,
Я имел ввиду, 000217.xml который хранится в data/contests, в этот xml добавлять дополнительные теги, но насколько я вас правильно понял, это не оптимально. О каком именно xml вы говорили?

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

Re: Узнать список текущих и прошедших соревнований.

Post by cher » 04 December 2014, 20:53

в NNNNNN.xml, кажется, есть все необходимые даты. Какой информации в нем не хватает?

htdocs каталог прописан в config.h

nuriyevn
Posts:15
Joined:01 December 2014, 01:29
Contact:

Re: Узнать список текущих и прошедших соревнований.

Post by nuriyevn » 05 December 2014, 01:32

cher wrote:в NNNNNN.xml, кажется, есть все необходимые даты. Какой информации в нем не хватает?
Дело в том что в NNNNNN.xml нет start_time (время начала соревнования)и stop_time (время завершения). а есть только reg_deadline. Как быть?

для того чтобы отобрать текущие соревнования нужно
if (start_time > 0 && stop_time <= 0) { }

Вопрос только лишь в том чтобы как и когда их записать в NNNNNN.xml чтобы потом прочитать ?

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

Re: Узнать список текущих и прошедших соревнований.

Post by cher » 05 December 2014, 15:50

<sched_time> - планируемое время старта;
<open_time> - время открытия (для виртуальных);
<close_time> - время закрытия (для виртуальных).

Возможно, что сейчас они не используются, но в XML-файле они присутствуют.

nuriyevn
Posts:15
Joined:01 December 2014, 01:29
Contact:

Re: Узнать список текущих и прошедших соревнований.

Post by nuriyevn » 05 December 2014, 19:05

<open_time> - время открытия (для виртуальных);
<close_time> - время закрытия (для виртуальных).
Предлагаете использовать их вместо нормальных start_time, stop_time?

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

Re: Узнать список текущих и прошедших соревнований.

Post by cher » 06 December 2014, 01:46

Эти поля сейчас не используются.

Либо можно делать выборку из таблицы runheaders. Там актуальная информация по всем турнирам.

nuriyevn
Posts:15
Joined:01 December 2014, 01:29
Contact:

Re: Узнать список текущих и прошедших соревнований.

Post by nuriyevn » 11 December 2014, 21:08

Спасибо. Реализовал через runheaders.

Post Reply