[{{mminutes}}:{{sseconds}}] X
Пользователь приглашает вас присоединиться к открытой игре игре с друзьями .
Ctrl предыдущая следующая Ctrl Страницы
1 2 3 4 5 6 7

Форум «Общий» / Создание универсального парсера для соревнований

MMMAAANNN Сообщение #102 17 февраля 2014 в 15:05
Супермен
36
А можно сделать результаты в виде таблички, содержащей скорость и проценты ошибок для всех участников независимо от попадания в зачет?

Думаю, как только такая появится (особенно если будет удобный экспорт в эксель!), парсер будет реально использовать для многих событий даже без моделей для них. Графики это хорошо, но их не получится скопировать в эксель и обсчитать по-своему.

Даже просто табличка с такими колонками была бы удобна, на мой взгляд:

id - рекорд в обычном - логин - заезд №1 скорость - заезд №1 % ошибок - заезд №2 скорость - заезд №2 % ошибок ...

В сочетании с отдельной табличкой заездов, в которой была бы указана длина текста для каждого заезда, можно посчитать почти все необходимое (количество ошибок легко найти, умножив длину текста на процент ошибок). Рекорд в Обычном удобнее, чем ранг, потому что ранг из него можно посчитать, а наоборот - нет.
Последний раз отредактировано 17 февраля 2014 в 15:10 пользователем MMMAAANNN
Lakira Сообщение #103 17 февраля 2014 в 17:30
Супермен
56
Поддерживаю MMMAAANNN'а: экспорт уже сейчас был бы полезен на случай несохранения html-страницы. В виде подробной таблицы (примерно как в парсере DIgorevich'a подробная таблица для Формулы-2) и/или "позаездно" перевод из json в csv наподобие этого + столбики с информацией, которая не содержится в html (рекорды, пробег и т.п.).

А насчёт обработки в самом парсере, появилась хотелка: по умолчанию итоговая таблица показывается со "строгим зачётом", рядом есть кнопка "Показать всех" и при нажатии на неё отображаются и незачётники.

UPD:
При попытке скормить парсеру сохранения Октатлона выскочила ошибка:
скрытый текст…
Пока нельзя добавлять соревнования с незнакомыми парсеру словарями?
Последний раз отредактировано 17 февраля 2014 в 18:08 пользователем Lakira
nosferatum Сообщение #104 17 февраля 2014 в 20:12
Супермен
32
Ошибка вылезла потому, что у меня нет этого словаря в статистике :)
Т.к. я не нашел отдельного api-запроса, чтобы получать название словаря по коду, то я беру название словаря из своей статистики. Проеду по этому словарю заезд - и парсер примет Октатлон.

В версии 1.8 voidmain добавил в json сохранение данных словаря из заезда. Если оно работет нормально - буду получать значение оттуда.

Update: заезд по "Безымянному марафону" проехал. Если нет других словарей, в которых я не ездил, парсер на Октатлоне отработает.
Последний раз отредактировано 17 февраля 2014 в 20:17 пользователем nosferatum
Lakira Сообщение #105 17 февраля 2014 в 21:27
Супермен
56
nosferatum, Октатлон загрузился нормально. :)
Подожду тогда, когда будет получение данных о словаре из json. У меня ещё Кибергонки сохранены (правда, без первого заезда), там куча разных словарей и каждую гонку состав словарей меняется.
nosferatum Сообщение #106 22 февраля 2014 в 16:36
Супермен
32
Добрый день.
Извиняюсь, что долго не отвечал — рабочие будни захватили мое время.

Обновил парсер. Добавил страницу с результирующей таблицей, которую просили в постах 102 и 103. Претензии и предолжения принимаются.

Например:
http://5.9.201.108:8080/kgparser-web-1.0/c...ompetitionId=20

Примечания:
1) В загруженных до сегодняшего обновления соревнованиях у игроков не заполнены поля «Рекорд в обычном» — они не заполнялись при парсинге зипа. Теперь заполняются :)
Если очень нужно, то можно сделать обновление, которое заполнит эти поля для всех соревнований, присутствующих в базе. Однако, конечно, рекорды в обычном возьмутся на текущий момент.

2) В html-таблице на странице можно сделать ссылки на профили игроков и на страницы заездов. Пока сделал базовую версию, о которой просили.

3) В Excel-таблице все ячейки пока строкового формата (хотя показывается он как «Общий»). Если нужно, можно поработать над тем, чтобы численные ячейки имели соответствующие форматы.

4) В Excel-таблице автоустановка ширины колонок (по длине значения) пока работать отказывается. Если заработает, добавлю ее. Пока ширины всех колонок одинаковые. Думаю, что в текущем варианте вид приемлемый. Также можно сократить заголовки столбцов, и сделать их поуже.

5) Возможно, стоит столбцы «Итого» сдвинуть влево, чтобы они стояли ПЕРЕД столбцами данных по заездам.

6) Раскраска таблицы «По рангам» возможна. Пока, повторюсь, реализована базовая версия. Предложения по оформлению таблиц принимаются и будут реализовываться. Если кто-то поможет с css-стилями (цвета ячеек, бордеров итд) для таблиц «а-ля существующие в других соревнованиях» — будет отлично.
Последний раз отредактировано 22 февраля 2014 в 16:49 пользователем nosferatum
MMMAAANNN Сообщение #107 22 февраля 2014 в 17:48
Супермен
36
Круто, что это появилось. Спасибо.
udezich Сообщение #108 22 февраля 2014 в 21:04
Супермен
39
Возможно ли сделать парсер для дуэлей? Допустим результаты по каждому заезду+общий итог (сравнение скоростей в каждом заезде, итоговый счет и прочие штуки?)
Lakira Сообщение #109 22 февраля 2014 в 21:05
Супермен
56
Спасибо за сводную таблицу!

По примечаниям:
1). Наверное, не нужно.
3). Не плохо бы числа сделать числами. :) Кажется, в парсере DIgorevich'a проблема не тех форматов была решена умножением числовых данных на 1.
4). Имхо, колонкам со скоростями/процентами/количеством ошибок лучше дать короткие и уникальные по заездам значения: ск1, %ош1, ош.1, ск2, %ош2, ош2... и т.д. Может вообще даже "группировать" данные одного типа: ск.1, ск.2, ск3..., ош1, ош2, ош3..., %ош1, %ош2, %ош3...? Или по заездам, как сейчас, удобнее? Не знаю...
5). Да, лучше пусть вся "общая информация" будет слева, отдельные заезды правее.

Не хватает в сводной:
- рекордов в заездах (можно либо отдельные столбики по заездам, либо в один столбик в строке участника с номерами рекордных заездов, например: "2, 4, 5, 7, 9. 11, 15"
- рекордов (максимальной скорости участника) в катаемых режимах и пробега в катаемых режимах (в json же это сохраняется?)
- пробега в обычном, суммарного пробега по всем режимам
- информации о номере места в заезде (для "биатлонных" подсчётов), но тут было бы гораздо легче для дальнейшей обработки в Excel исходить из позаездных данных...

В дополнение к сводной на отдельный лист при экспорте в Excel хочется табличку с данными о заездах.

И ещё фильтров бы при просмотре/экспорте, какие именно столбцы показывать/экспортировать в эксель (ставим галочку, напротив нужного и оно отображается/сохраняется, примерно вот это)

Чем больше появляется, тем большего ещё хочется. xD
nosferatum Сообщение #110 22 февраля 2014 в 22:25
Супермен
32
Возможно ли сделать парсер для дуэлей? Допустим результаты по каждому заезду+общий итог (сравнение скоростей в каждом заезде, итоговый счет и прочие штуки?)


Можно, только нужно понять, что именно нужно сделать :)
ТОМА-АТОМНАЯ Сообщение #111 22 февраля 2014 в 22:52
Супермен
101
В дуэлях как раз таки просто, как сказано в правилах, так и сделать.
Если по количеству побед, то напротив скорости победитель, его ник или очко.
Если по средней зачетной, то естественно в конце должны сравниваться средние.
Если несколько режимов выбрано, то там тоже либо по количеству общих побед, что более вероятно, либо соперники не сильно равны в режимах, захотят более сложный расчет: если например выбрано по 3 заезда, а режимов катается 5, нечетное количество, то победы в режимах, у кого наибольшее количество побед именно в режимах, 3 против 2, тот и победитель. Т.е. это оговаривается еще в начале объявленной темы.
nosferatum Сообщение #112 23 февраля 2014 в 00:20
Супермен
32
3). Не плохо бы числа сделать числами. :) Кажется, в парсере DIgorevich'a проблема не тех форматов была решена умножением числовых данных на 1.

Сделаю. Умножения на число не понадобится, надеюсь, ибо джавовская библиотека экспорта в эксель поддерживает установку типа ячейки.

4). Имхо, колонкам со скоростями/процентами/количеством ошибок лучше дать короткие и уникальные по заездам значения: ск1, %ош1, ош.1, ск2, %ош2, ош2... и т.д.

Сокращенные названия принимаются, исправлю на них.

Может вообще даже "группировать" данные одного типа: ск.1, ск.2, ск3..., ош1, ош2, ош3..., %ош1, %ош2, %ош3...? Или по заездам, как сейчас, удобнее? Не знаю...

В суммарной таблице в том виде, как она сейчас, имхо, логичней по заездам. Можно сделать отдельные таблицы по каждому параметру, если это нужно.

5). Да, лучше пусть вся "общая информация" будет слева, отдельные заезды правее.

Ок, исправлю.

- рекордов в заездах (можно либо отдельные столбики по заездам, либо в один столбик в строке участника с номерами рекордных заездов, например: "2, 4, 5, 7, 9. 11, 15"

С рекордами проблема, ибо их в json-е нет, и неясно, как их получать. Единственное — можно сравнить скорость в заезде с текущим рекордом по словарю, и если он больше — считать рекордом. Не факт, что это надежный способ (особенно в случаях непрохождения квалификации).

- рекордов (максимальной скорости участника) в катаемых режимах и пробега в катаемых режимах (в json же это сохраняется?)

Да, вроде как в json-е это есть. Правда, я пока не достаю эти данные оттуда :) Но нужно добавить, раз надо, да. Даже если нет в json-файлах, то достать можно из статистики игрока (конечно, данные будут тогда на момент загрузки в парсер).

- пробега в обычном, суммарного пробега по всем режимам

Ок, добавлю. Возьмется это из того же запроса, что и на общую скорость (это данные правых плашек в профиле).

- информации о номере места в заезде (для "биатлонных" подсчётов), но тут было бы гораздо легче для дальнейшей обработки в Excel исходить из позаездных данных...

Информация по отдельным заездам и местам есть на странице заезда (раскрыть «Результаты игроков (включая гостей)»). Стоит в сводную таблицу для каждого заезда добавить еще и место игрока в заезде?

В дополнение к сводной на отдельный лист при экспорте в Excel хочется табличку с данными о заездах.

Ок, сделаю. Думаю, можно недостающие данные тогда вынести в таблицу заездов на странице соревнований (раскрываем «Заезды»).

И ещё фильтров бы при просмотре/экспорте, какие именно столбцы показывать/экспортировать в эксель (ставим галочку, напротив нужного и оно отображается/сохраняется, примерно вот это)

Будет, во всех таблицах. Как я уже писал, возможно, прикручу какие-нибудь готовые js-таблицы. Впрочем, свои таблицы сделать тоже реально.
Последний раз отредактировано 23 февраля 2014 в 00:27 пользователем nosferatum
voidmain Сообщение #113 23 февраля 2014 в 01:15
Маньяк
29
nosferatum писал(а):
С рекордами проблема, ибо их в json-е нет, и неясно, как их получать. Единственное — можно сравнить скорость в заезде с текущим рекордом по словарю, и если он больше — считать рекордом. Не факт, что это надежный способ (особенно в случаях непрохождения квалификации).

Я могу добавить это в экспортируемый JSON
nosferatum Сообщение #114 23 февраля 2014 в 01:17
Супермен
32
Я могу добавить это в экспортируемый JSON

А можно туда добавить именно признак рекорда из текущей игры?
voidmain Сообщение #115 23 февраля 2014 в 02:36
Маньяк
29
nosferatum писал(а):
А можно туда добавить именно признак рекорда из текущей игры?

Добавил. Выложил новую версию скрипта: KG_SaveGameResult 1.9
MMMAAANNN Сообщение #116 23 февраля 2014 в 02:45
Супермен
36
voidmain, а можно добавить скрипт сохранения результатов заезда в скрипт ведения лога заездов? Тогда вообще не надо будет помнить о необходимости сохранения заезда, зашел в лог - выбрал галочками нужные заезды - нажал кнопочку - получил экспоритрованные json (а то и сразу загрузить их в парсер nosferatum!)
P.S. А, все, понял свою ошибку - для сохранения json ведь важен момент, когда его сохраняют. Это не так просто настроить будет, наверное... Но можно подумать над такими вариантами: (1) момент доезда текста (видимо попадут почти все, кто тебя обогнал, и мало кто из тех, кто проехал с меньшей скоростью); (2) заданное время после начала заезда (это лучше - можно задать так, чтобы всегда попадали все таксисты, например; но тогда не все заезды будут сохраняться); (2a) время из расчеты длины текста так, чтобы в зачет попали все со скоростями выше N.
Последний раз отредактировано 23 февраля 2014 в 03:02 пользователем MMMAAANNN
AvtandiLine Сообщение #117 23 февраля 2014 в 02:55
Кибергонщик
61
А обязательно ли для экспорта сводной таблицы использовать Excel 2007? у меня старый (2003), и у других может оказаться, мало ли...
nosferatum Сообщение #118 23 февраля 2014 в 02:57
Супермен
32
А обязательно ли для экспорта сводной таблицы использовать Excel 2007? у меня старый (2003), и у других может оказаться, мало ли...


В принципе, могу сделать две отдельных ссылки для xls и xlsx. Либо же исключительно в старом формате выгружать.
voidmain Сообщение #119 23 февраля 2014 в 03:00
Маньяк
29
MMMAAANNN писал(а):
voidmain, а можно добавить скрипт сохранения результатов заезда в скрипт ведения лога заездов? Тогда вообще не надо будет помнить о необходимости сохранения заезда, зашел в лог - выбрал галочками нужные заезды - нажал кнопочку - получил экспоритрованные json (а то и сразу загрузить их в парсер nosferatum!)

В журнал записываются только ваши результаты. Записать результаты других участников заезда не получится: часто бывает так, что игрок выходит из игры, не дождавшись остальных.
MMMAAANNN Сообщение #120 23 февраля 2014 в 03:05
Супермен
36
voidmain писал(а):
MMMAAANNN писал(а):
voidmain, а можно добавить скрипт сохранения результатов заезда в скрипт ведения лога заездов? Тогда вообще не надо будет помнить о необходимости сохранения заезда, зашел в лог - выбрал галочками нужные заезды - нажал кнопочку - получил экспоритрованные json (а то и сразу загрузить их в парсер nosferatum!)

В журнал записываются только ваши результаты. Записать результаты других участников заезда не получится: часто бывает так, что игрок выходит из игры, не дождавшись остальных.

Но ведь можно хоть часть результатов записать. Плюс иногда интересно посмотреть, кто еще был в том или ином заезде. А сохраняемый json можно обновлять, например, каждые 10 секунд - вышел раньше, записались не все; подождал - записались все.
nosferatum Сообщение #121 23 февраля 2014 в 03:14
Супермен
32
Я думаю, что столь глубокие изменения нужно просить вносить в движок авторов клавогонок.

По логике, раз есть момент уничтожения сессии игры (через где-то 20 минут после ее начала), то хорошо бы там поставить обработчик, собирающий результаты всех игроков.

Предлагаю написать в какую-либо тему из тех, что про развитие клавогонок и новых их фич, микропетицию (собрать голоса активных клавогонщиков) с просьбой:
а) не закрывать доступ к js-переменным, которые используются в скрипте от voidmain (Fenex угрожал этим в одном из постов)
б) встроить в обработчик конца сессии игры скрипт сохранения данных. Чудо-скрипт у нас уже фактически есть. Можно попросить сделать и автопост данных в мой парсер, как разумно предлагает MMMAAANNN.

Думаю, что клавомеханики — люди разумные, и вступить с ними в конструктивный диалог вполне возможно.
Последний раз отредактировано 23 февраля 2014 в 03:15 пользователем nosferatum

Чтобы писать в форуме, нужно зарегистрироваться.

Ctrl предыдущая следующая Ctrl Страницы
1 2 3 4 5 6 7

Связаться
Выделить
Выделите фрагменты страницы, относящиеся к вашему сообщению
Скрыть сведения
Скрыть всю личную информацию
Отмена