История SC

Всем привет.  ![:)](<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:

  1. 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)
  1. findusersjs.php - вывод результата в формате JSON, запрос аналогичен как и в findusers.php
  2. Пример запросаhttp://ts2.scorpclub.ru/api/v1/findusersjs.php?search=clanTag%3D’scorp’&sort=nickname&limit=50
  3. Примечание 1 : Максимальная длина результата = 300 (limitmax = 300)
  4. Примечание 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:”)

Вау, спасибо.)

Прикольно. Тоже хотел такое сделать, но чот загрустил. Если надо могу дать список из 25 тысяч ников собранных с логов за полгода, но как бы тебя апи не зобанел за такое надругательство над ним =)

WinRate: работает явно некорректно, у меня везде 0.57

K/D+: что это?  K/D за данный день?

WinRate+: тоже, что это? если это  WinRate за данный день, то тоже работает некорректно, у меня в последние дни в основном победы

 

Всего отремантировано: отремОнтировано, поправь.

а данные по кол-ву пвп там точно верные.?:ООООО

Еще можно было бы сделать чтобы по тегу корпорации выдавалась активность пилотов за неделю допустим, чтобы глава и рекрутеры видели кто молодец ![:)](<fileStore.core_Emoticons>/emoticons/001.png “:)”)

2 минуты назад, VEDROLET сказал:

WinRate: работает явно некорректно, у меня везде 0.57

0.57 это 57%, а не коэффициент, как в клиенте игры.

3 минуты назад, _KOPM сказал:

0.57 это 57%, а не коэффициент, как в клиенте игры.

В таком случае, так и надо писать.

 

Мощь флота: зачем там точка? 

11 минуту назад, Xoma69 сказал:

Вау, спасибо.)

На здоровье ![:)](<fileStore.core_Emoticons>/emoticons/001.png “:)”)

 

1 минуту назад, Xoma69 сказал:

а данные по кол-ву пвп там точно верные.?:ООООО

Ни в чем не уверен, так как все писал во время бессонницы  ![:00:](<fileStore.core_Emoticons>/emoticons/00.png “:00:”)

 

5 минут назад, weegee сказал:

Прикольно. Тоже хотел такое сделать, но чот загрустил. Если надо могу дать список из 25 тысяч ников собранных с логов за полгода, но как бы тебя апи не зобанел за такое надругательство над ним =)

Буду рад, если скинешь в личку БД с никнеймами ![:)](<fileStore.core_Emoticons>/emoticons/001.png “:)”)
На счет бана по IP, надеюсь не забанят, но если вдруг - заранее прикручено смена IP через открытые прокси

 

2 минуты назад, weegee сказал:

Еще можно было бы сделать чтобы по тегу корпорации выдавалась активность пилотов за неделю допустим, чтобы глава и рекрутеры видели кто молодец ![:)](<fileStore.core_Emoticons>/emoticons/001.png “:)”)

Да, в будущем как раз планировал такую фичу ввести ![:)](<fileStore.core_Emoticons>/emoticons/001.png “:)”)

 

5 минут назад, VEDROLET сказал:

WinRate: работает явно некорректно, у меня везде 0.57

K/D+: что это?  K/D за данный день?

WinRate+: тоже работает некорректно, у меня в последние дни в основном победы

 

Всего отремантировано: отремОнтировано, поправь.

Поправил орфографию, спасибо ![:)](<fileStore.core_Emoticons>/emoticons/001.png “:)”)
На счет WinRate и всего остального - все так же не уверен, как нибудь сяду и буду перепроверять формулы

 

2 минуты назад, _KOPM сказал:

0.57 это 57%, а не коэффициент, как в клиенте игры.

Да, это как раз 57%, только не умноженное на 100%, то есть WinRate = gameWin / gamePlayed

4 минуты назад, Igroman787 сказал:

 

Да, это как раз 57%, только не умноженное на 100%, то есть WinRate = gameWin / gamePlayed

Чувак, сложна. Предлагаю так и написать: процент побед.

 

А в WinRate+ написать сколько побед было в данный день.

Отличный Функционал!!!  ![:good:](<fileStore.core_Emoticons>/emoticons/good.gif “:good:”)

Для винрейта я бы оставил всем привычный gameWin/(gamePlayed-gameWin). А вот прирост за день, наверное в процентном соотношении. Чтобы можно было понять, что за эти сутки N% побед было, а не кэф.

Круто. Поюзаем-с. 

В 11.05.2017 в 18:01, TenG сказал:

Отличный Функционал!!!  ![:good:](<fileStore.core_Emoticons>/emoticons/good.gif “:good:”)

Спасибо ![:)](<fileStore.core_Emoticons>/emoticons/001.png “:)”)

 

В 11.05.2017 в 18:16, _KOPM сказал:

Для винрейта я бы оставил всем привычный gameWin/(gamePlayed-gameWin). А вот прирост за день, наверное в процентном соотношении. Чтобы можно было понять, что за эти сутки N% побед было, а не кэф.

Сам я был не в курсах по какой формуле высчитывается WinRate, поэтому взял формулу с доты (gameWin/gamePlayed), но если всем привычнее gameWin/(gamePlayed-gameWin), то пусть будет так ![:)](<fileStore.core_Emoticons>/emoticons/001.png “:)”) Так же теперь WinRate+ показывает процентное соотношение побед за сутки ![:)](<fileStore.core_Emoticons>/emoticons/001.png “:)”)

UPD : Решил обратно вернуть старую формулу для WinRate = gameWin/gamePlayed. Но добавил новый показатель W/L = gameWin/(gamePlayed-gameWin)

 

В 11.05.2017 в 17:51, VEDROLET сказал:

Мощь флота: зачем там точка? 

Мощь флота не была умножена на 100%. Теперь же отображается в % ![:)](<fileStore.core_Emoticons>/emoticons/001.png “:)”)

 

В 11.05.2017 в 17:59, VEDROLET сказал:

А в WinRate+ написать сколько побед было в данный день.

Да, теперь WinRate+ отображает сколько процентов побед из всех игр было за день

Посмотрел свою статку за неделю, а я оказывается не такой роч как думал. Винрейт в среднем 60%+, зато коэф смертей /убийств  сильно падает, что не удивительно для соло  игры на инженере.

Хотелось бы видеть параметры на русском , так более понятно.

![:good:](<fileStore.core_Emoticons>/emoticons/good.gif “:good:”). В закладки. Обычно оцениваю сам свои успехи, но тут значительно удобнее (теперь вижу, что стоп-кран мне нажать не мешало бы, а то ММ не правильно меня оценит).

Круто… только странно…  некоторые данные не совпадают, 9 числа 0 игр, хотя они были, а 12 наоборот две, при том что сегодня даже игру не запускал ![:fed002:](<fileStore.core_Emoticons>/emoticons/fed002.png “:fed002:”)

з.ы. Но так как это только тест сервиса… и на том спасибо ![:014:](<fileStore.core_Emoticons>/emoticons/014.png “:014:”)

В 12.05.2017 в 09:05, KotMypkot сказал:

Хотелось бы видеть параметры на русском , так более понятно.

Там есть кнопка, включающая перевод непонятных слов. Но пока не все слова переводятся, надеюсь скоро дойдут до этого руки ![:)](<fileStore.core_Emoticons>/emoticons/001.png “:)”)

 

В 12.05.2017 в 11:04, Razor127 сказал:

Круто… только странно…  некоторые данные не совпадают, 9 числа 0 игр, хотя они были, а 12 наоборот две, при том что сегодня даже игру не запускал ![:fed002:](<fileStore.core_Emoticons>/emoticons/fed002.png “:fed002:”)

з.ы. Но так как это только тест сервиса… и на том спасибо ![:014:](<fileStore.core_Emoticons>/emoticons/014.png “:014:”)

Дело в том, что процесс сбора данных начинается после полуночи, то есть статистика за 12 мая отображается как бы за 11, но надеюсь скоро я это дело исправлю ![:)](<fileStore.core_Emoticons>/emoticons/001.png “:)”)

UPD : Исправил ![:)](<fileStore.core_Emoticons>/emoticons/001.png “:)”)

Можно уточнить, что за значение *Легендарные пилоты*? Сначала подумала, что по достижениям, но нет. После, подумала, что по сбитым- тоже нет. По кол-ву пвп, тоже не сходятся значения, если на ник навести… Не понятно что это такое ._.

Возможно, кол-во побед? Тогда там кучи ников еще нет =_=

8 минут назад, Xoma69 сказал:

Можно уточнить, что за значение *Легендарные пилоты*? Сначала подумала, что по достижениям, но нет. После, подумала, что по сбитым- тоже нет. По кол-ву пвп, тоже не сходятся значения, если на ник навести… Не понятно что это такое ._.

Возможно, кол-во побед? Тогда там кучи ников еще нет =_=

Да, там сортировка идет по количеству побед за все время. Выводится top100 из таблицы. Возможно некоторые ники не отображаются, потому что их нету в БД ![:(](<fileStore.core_Emoticons>/emoticons/003.png “:(”)