Всем привет. ![:)](<fileStore.core_Emoticons>/emoticons/001.png “:)”)
Прочитав тему про [торговый чат в вебе](< base_url >/index.php?/topic/56405-torgovyi-chat-v-vebe/), вдохновился написанием сервиса, где можно было бы посмотреть историю пилотов SC. В данный момент сервис находятся в стадии доработки (могут быть замечены баги и прочее. Просьба сообщать о них в данном топике) Однако не факт, что я сразу же исправлю это - времени крайне мало. Плюсики в карму тоже не помешают ![:)](<fileStore.core_Emoticons>/emoticons/001.png “:)”)
](http://ts2.scorpclub.ru/api/v1/userinfo.php)
Немного о сервисе:
- Сам сервис собирает из игры всех активных пилотов, которые засветились в чате или в бою с инфо-твинками.
- История пишется ежесуточно примерно после полуночи по МСК.
- Источником данных пилотов является открытая API Star Conflict.
- 10 мая сервис был одобрен разработчиками SC, после чего я и решил опубликовать сервис в открытый доступ.
- 11 мая была добавлена возможность посмотреть 100 лучших пилотов SC за сутки а так же Легендарных пилотов (bug).
- 14 мая была добавлена возможность поиска игроков по определенным параметрам.
- 17 мая был добавлен новый показатель W/L.
- 30 мая были добавлены 100 лучших и 100 самых активных пилотов на главную.
- 24 июля была добавлена возможность посмотреть время начала и конца обновления БД.
Планы на будущее:
- Добавить возможность искать пилотов по определенным параметрам, например для набора команды ( готово )
- Смотреть успехи пилотов определенных корпораций ( готово )
- Возможность выбора отображаемых значений в таблице
- Возможность просмотра краткой истории смены никнеймов и корпораций
- Возможность просмотра Достижений, включая “Корпоративный *удалено*” (выдается при смене более 3 корпораций за последний месяц)
- Возможность просмотра результатов за определенное время
Ну а пока на нем можно просто посмотреть историю пилота, включая историю изменения никнеймов и историю смены корпораций.
Встречайте: http://ts2.scorpclub.ru/api/v1/userinfo.php
UPD : И еще, просьба не ddos’ить. Все равно кроме данного сервиса ничего не отвалится.
UPD2 : Формулы, используемые в таблицах:
- K/D = totalKill / totalDeath
- KDA = (totalKill + totalAssists) / totalDeath
- WinRate = gameWin / gamePlayed * 100% (Процент побед за все время)
- W/L = gameWin / (gamePlayed - gameWin)
- K/D+, KDA+, W/L+, WinRate+ и gamePlayed+ соответственно равны K/D, KDA, W/L, WinRate и gamePlayed, только за сутки.
UPD3 : Дошли руки для того, чтобы разобраться с никнеймами, которые скинул [weegee](< base_url >/index.php?/profile/1092265-weegee/ “Перейти в профиль weegee”), спасибо ему за это. В результате получилась база ~7,5k живых пользователей (игравших в период с 15 по 22 мая), большая часть из которых уже занесена в БД Истории SC. Сама база живых никнеймов: [nicknames.log](< base_url >/applications/core/interface/file/attachment.php?id=175686)
UPD4 : Добавил возможность просмотра в формате JSON:
- userinfojs.php - вывод результата в формате JSON, запрос аналогичен как и в userinfo.php
- Пример запроса : http://ts2.scorpclub.ru/api/v1/userinfojs.php?uid=728435&limit=3
- Примечание 1 : Результат выводится начиная с более ранней даты, заканчивая более поздней
- Примечание 2 : Максимальная длина результата = 300 (limitmax = 300)
- Примечание 3 : Длина результата по умолчанию = 300 (limitdefault = 300)
- findusersjs.php - вывод результата в формате JSON, запрос аналогичен как и в findusers.php
- Пример запроса : http://ts2.scorpclub.ru/api/v1/findusersjs.php?search=clanTag%3D’scorp’&sort=nickname&limit=50
- Примечание 1 : Максимальная длина результата = 300 (limitmax = 300)
- Примечание 2 : Длина результата по умолчанию = 300 (limitdefault = 300)
Максимальная длина результата связана с тем, что при выводе большого количества данных (от 50000) в формате JSON сервер перегружается и зависает (плохо разбираюсь во всем этом, поэтому не знаю как решить данную проблему)
UPD5 : Добавил возможность посмотреть время начала и конца обновления БД:
- Пример запроса : http://ts2.scorpclub.ru/api/v1/gettimestamps.php
- Пример вывода : {“result”:3,“text”:“ok”,“data”:{“RecordStartTime”:1500930000,“RecordEndTime”:1500961653,“timezone”:"-10800"}}
- Значения : RecordStartTime - время начала обновления БД в секундах с начала эпохи. RecordEndTime - время конца обновления БД в секундах с начала эпохи. timezone - смещение местного часового пояса в секундах.
- Примечание: Значение RecordStartTime и RecordEndTime получаются модулем time, а именно time.time (); Значение timezone = time.timezone ;
UPD6: Исходный код проекта на github: https://github.com/igroman787/schistory Сразу предупреждаю - я самоучка и код может быть не читаемым ![:006j:](<fileStore.core_Emoticons>/emoticons/006j.png “:006j:”)