Калькулятор статистики игроков

3 часа назад, ITalianBadBoy сказал:

«33» - это «cid» гильдии: «Триколор Хокс».

 

Чтобы лучше управлять данными гильдии и избежать избыточности, инструмент идентифицирует каждую компанию с помощью cid

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

 

 

Сегодня я обновлю API, который позволит вам получить список игроков внутри корпораций, введя cid или имя.

Я также изменяю базу данных для управления историей PvPRating и PvERating компании.

Я думаю, что на этой неделе или даже сегодня я реализую функцию, чтобы получить топ-10 через API.

 

Весь код и база данных находятся в стадии разработки; может возникнуть временная неэффективность.

 

 

P.S:

Не могли бы вы указать свои предпочтения и потребности, а также изменения, которые было бы целесообразно применить к API?

 

 

Ты делаешь очень хорошую работу. 

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

API

 

PROTOCOL: HTTP || HTTPS

METHOD:  POST || GET

URL:    http://www.badboytool.com/tool/sc/api.php

 

RESPONSE CODE:

Spoiler

0 = 'Ok'
 1 = 'Error: Invalid method'
 2 = 'Error: Parameters not found'
 3 = 'Error: Invalid parameters'
 4 = 'Alert: Nickname or uid not registered in db'
 5 = 'Alert: Nickname changed and no longer valid, found old data'
 6 = 'Alert: The NickName will be processed tomorrow'
 7 = 'Error: Nickname or uid invalid'
 8 = 'Alert: Clan or TAG not registered in db'
 9 = 'Error: Connection failed to the db'
10 = 'Error: Under development'

 

 

All dates are relative to the UTC time zone.
The data will be updated every day from 00:00 AM to 02:00 AM (UTC).

 

**All strings are managed according to the standard in UTF-8

The API will try to detect the character encoding and always will try to convert in to UTF-8.

You can use the “charset” parameter to specify the character set used.
Example: ** http://www.badboytool.com/tool/sc/api.php?nickname=Gladiator&get=absolute&limit=1&charset=UTF-8

 

 

 

Get the player’s history

 

 

PARAMETER:  (nickname || uid) && get      // The player’s name or his id and get MUST BE: daily || absolute || all

OPTIONAL:  limit                                          // The maximum number of days in the history: 0 < limit <= 90

 

E.G. URL:      http://www.badboytool.com/tool/sc/api.php?nickname=Gladiator&get=absolute&limit=1    

 

Spoiler

{"code": 0,"text": "Ok","data": {"uid": 94977,"nickName": "Gladiator","lastCheck": "2019-12-18","valid": 1,"history": {"absolute": {"2019-12-17": {"effRating": 7142,"prestigeBonus": 233,"accountRank": 23,"karma": 18067,"pvp": {"gamePlayed": 28728,"gameWin": 22298,"totalAssists": 230156,"totalBattleTime": 11307834389,"totalDeath": 26846,"totalDmgDone": 8890158147,"totalHealingDone": 1295885707,"totalKill": 125883,"totalVpDmgDone": 449186},"pve": {"gamePlayed": 3796,"unlimPve\_playerAttackLevel": 36,"unlimPve\_playerDefenceLevel": 12},"coop": {"gameWin": 142,"gamePlayed": 144,"totalBattleTime": 42777003},"clan": {"cid": 1867,"name": "TerraLuX","tag": "LuX"}}}},"pvelv": {"wavePve\_maxWave": 0,"capture\_repairbase\_t1": 25,"nalnifan\_lumen\_waves\_T1": 23,"pve\_jericho\_base\_t2": 21,"pve\_empfrontier\_waves\_T1": 9,"asteroid\_building\_t1": 13,"loot\_geostation\_normal": 12,"planet\_war\_waves\_T1": 22,"bigship\_building\_2\_easy": 1,"pve\_desttown\_waves\_easy": 11,"pve\_frozen\_station\_t2": 8,"bigship\_building\_easy": 13},"rank": {"absolute": {"effRating": {"position": null,"value": null},"prestigeBonus": {"position": 151,"value": "233"},"accountRank": {"position": 149,"value": "23"},"poskarma": {"position": null,"value": null},"negkarma": {"position": null,"value": null},"pvp": {"gamePlayed": {"position": 49,"value": "28728"},"gameWin": {"position": 11,"value": "22298"},"gameLoss": {"position": 482,"value": "6430"},"totalAssists": {"position": 39,"value": "230156"},"totalBattleTime": {"position": 76,"value": "11307800000"},"totalKill": {"position": 29,"value": "125883"},"totalDeath": {"position": 591,"value": "26846"},"totalDmgDone": {"position": 5,"value": "8890160000"},"totalHealingDone": {"position": 34,"value": "1295890000"},"totalVpDmgDone": {"position": 15,"value": "449186"},"killRate": {"position": 126,"value": "4.69"},"assistsRate": {"position": 110,"value": "8.57"},"deathRate": {"position": 93,"value": "0.08"},"survivalRate": {"position": 94,"value": "13.26"},"winRate": {"position": 13,"value": "3.47"},"averageKill": {"position": 596,"value": "4.38"},"averageAssists": {"position": null,"value": null},"averageDeath": {"position": null,"value": null},"averageDmgDone": {"position": 133,"value": "309460"},"averageHealingDone": {"position": 964,"value": "45108.8"},"averageVp": {"position": 217,"value": "15.64"},"deathProbability": {"position": null,"value": null},"assistsProbability": {"position": null,"value": null},"killProbability": {"position": 575,"value": "32.88"},"winProbability": {"position": 13,"value": "77.62"},"lossProbability": {"position": null,"value": null}},"pve": {"gamePlayed": {"position": null,"value": null},"unlimPve\_playerAttackLevel": {"position": 469,"value": "36"},"unlimPve\_playerDefenceLevel": {"position": null,"value": null}},"coop": {"gameWin": {"position": null,"value": null},"gameLoss": {"position": null,"value": null},"winRate": {"position": null,"value": null},"gamePlayed": {"position": null,"value": null},"totalBattleTime": {"position": null,"value": null}}}}}}

 

 

 

 

Get the clan’s data

 

PARAMETER: (clan || tag) &&  get   // The clan’s or tag name and get MUST BE: players || absolute || daily || all

OPTIONAL:  limit                               // The maximum number of days in the history: 0 < limit <= 90

 

E.G. URL:  http://www.badboytool.com/tool/sc/api.php?clan=Tricolor Hawks&get=all&limit=2

Spoiler

{"code": 0,"text": "Ok","data": {"name": "Tricolor Hawks","tag": "IT4LY","lastCheck": "2019-09-12","history": {"absolute": {"2019-09-11": {"pvpRating": 36195,"pveRating": 438517},"2019-09-10": {"pvpRating": 37767,"pveRating": 442408}},"daily": {"2019-09-11": {"pvpRating": -1572,"pveRating": -3891},"2019-09-10": {"pvpRating": -1280,"pveRating": -6152}}},"players": [{"uid": 755373,"nickName": "Blando"},{"uid": 1622292,"nickName": "ComAlexei"},{"uid": 1503333,"nickName": "ContCommando"},{"uid": 606759,"nickName": "Crush3r"},{"uid": 1486351,"nickName": "Daddu23"},{"uid": 3519162,"nickName": "Daryk7"},{"uid": 1646915,"nickName": "EnergY"},{"uid": 2805003,"nickName": "GL246857"},{"uid": 3547093,"nickName": "Gemini65"},{"uid": 1707859,"nickName": "GiNaWilD"},{"uid": 3544948,"nickName": "Hunthor86"},{"uid": 1888183,"nickName": "ILPASO"},{"uid": 1856774,"nickName": "ILTERRIBBILE"},{"uid": 1393113,"nickName": "ItalianBadBoy"},{"uid": 1037823,"nickName": "LoSconosciuto"},{"uid": 619329,"nickName": "LorryCollu"},{"uid": 1361471,"nickName": "Lupi"},{"uid": 555613,"nickName": "MIKro3"},{"uid": 306861,"nickName": "MadMaxHellfire"},{"uid": 470349,"nickName": "Megrezh"},{"uid": 2342488,"nickName": "Merlyno"},{"uid": 2325437,"nickName": "Predatore"},{"uid": 1211027,"nickName": "Primus80"},{"uid": 3548084,"nickName": "ROCK01"},{"uid": 975674,"nickName": "RichardCool"},{"uid": 726386,"nickName": "Rordan"},{"uid": 1240845,"nickName": "Ruttolo"},{"uid": 1016231,"nickName": "SPARTANO"},{"uid": 1171568,"nickName": "STARSTVirusAlice"},{"uid": 878054,"nickName": "ShinryuOmega"},{"uid": 359419,"nickName": "SiMoZ"},{"uid": 1747817,"nickName": "Sonic89"},{"uid": 372782,"nickName": "TheBombWar"},{"uid": 2487719,"nickName": "TheNik10"},{"uid": 1093492,"nickName": "VanRiddick"},{"uid": 598930,"nickName": "XXArchDragonXX"},{"uid": 463454,"nickName": "blackwing"},{"uid": 624420,"nickName": "cabal"},{"uid": 1042743,"nickName": "camillo98ita"},{"uid": 1617008,"nickName": "canelloni"},{"uid": 764764,"nickName": "cszlikowsky"},{"uid": 1094240,"nickName": "frankfalketti"},{"uid": 540132,"nickName": "grande18"},{"uid": 432064,"nickName": "lkaderl"},{"uid": 1064454,"nickName": "lottox"},{"uid": 1049651,"nickName": "lucaventicinque"},{"uid": 3646754,"nickName": "luckyskulls"},{"uid": 3063436,"nickName": "natalie"},{"uid": 2177940,"nickName": "niknak63"},{"uid": 2656732,"nickName": "p938MeV"},{"uid": 443635,"nickName": "sangueblues"},{"uid": 2050156,"nickName": "stevenson"}]}}

 

 

 

 

 

Get the ** player’s **** ranking**

 

PARAMETER: rank                     // MUST BE: daily || absolute || pve || all

OPTIONAL:  limit                         // Get only the e.g. top ten: 0 < limit < 1000

 

INFO: When two players have the same value the time in PVP battles will be evaluated for to determine the position.

E.G. URL:  http://www.badboytool.com/tool/sc/api.php?rank=absolute&limit=3

Spoiler

{"code": 0,"text": "Ok","data": {"absolute": {"effRating": [{"position": 1,"nickName": "Cavi1","value": "9690"},{"position": 2,"nickName": "karaED","value": "9665"},{"position": 3,"nickName": "Kastante","value": "9551"}],"prestigeBonus": [{"position": 1,"nickName": "Ben4ik","value": "245"},{"position": 2,"nickName": "Flibastier","value": "245"},{"position": 3,"nickName": "IAgent008","value": "245"}],"accountRank": [{"position": 1,"nickName": "xLeonx","value": "25"},{"position": 2,"nickName": "Sparax","value": "25"},{"position": 3,"nickName": "VikRus","value": "25"}],"poskarma": [{"position": 1,"nickName": "unknown716500","value": "2479350"},{"position": 2,"nickName": "zerg42rus","value": "2378540"},{"position": 3,"nickName": "NordSiberia","value": "1912380"}],"negkarma": [{"position": 1,"nickName": "PapyMcBites","value": "-4757010"},{"position": 2,"nickName": "Nafalar","value": "-2149520"},{"position": 3,"nickName": "Sarelan","value": "-1805440"}],"pvp": {"gamePlayed": [{"position": 1,"nickName": "LEXXX","value": "58866"},{"position": 2,"nickName": "Alexorsk","value": "55052"},{"position": 3,"nickName": "DeleteD","value": "53719"}],"gameWin": [{"position": 1,"nickName": "DeleteD","value": "36368"},{"position": 2,"nickName": "LEXXX","value": "31247"},{"position": 3,"nickName": "Alexorsk","value": "28780"}],"gameLoss": [{"position": 1,"nickName": "LEXXX","value": "27619"},{"position": 2,"nickName": "Alexorsk","value": "26272"},{"position": 3,"nickName": "SerB","value": "21287"}],"totalAssists": [{"position": 1,"nickName": "DeleteD","value": "502606"},{"position": 2,"nickName": "LEXXX","value": "488849"},{"position": 3,"nickName": "RoguE","value": "430433"}],"totalBattleTime": [{"position": 1,"nickName": "LEXXX","value": "26510900000"},{"position": 2,"nickName": "Alexorsk","value": "25077500000"},{"position": 3,"nickName": "DeleteD","value": "23797600000"}],"totalKill": [{"position": 1,"nickName": "DeleteD","value": "283459"},{"position": 2,"nickName": "KAMA3","value": "232320"},{"position": 3,"nickName": "NERW","value": "205781"}],"totalDeath": [{"position": 1,"nickName": "Alexorsk","value": "166897"},{"position": 2,"nickName": "LEXXX","value": "151569"},{"position": 3,"nickName": "DV969","value": "138912"}],"totalDmgDone": [{"position": 1,"nickName": "DeleteD","value": "13955600000"},{"position": 2,"nickName": "KAMA3","value": "10836600000"},{"position": 3,"nickName": "NERW","value": "9430160000"}],"totalHealingDone": [{"position": 1,"nickName": "DeleteD","value": "3219370000"},{"position": 2,"nickName": "Guf","value": "2553220000"},{"position": 3,"nickName": "Mzhelskii","value": "2524990000"}],"totalVpDmgDone": [{"position": 1,"nickName": "VikRus","value": "713782"},{"position": 2,"nickName": "Sonic89","value": "682583"},{"position": 3,"nickName": "fix77","value": "575328"}],"killRate": [{"position": 1,"nickName": "Takamina","value": "21.88"},{"position": 2,"nickName": "Renshi","value": "12.76"},{"position": 3,"nickName": "ECMnoob","value": "12.67"}],"assistsRate": [{"position": 1,"nickName": "GrandeMafia90rus","value": "21.24"},{"position": 2,"nickName": "I3at0n","value": "19.49"},{"position": 3,"nickName": "Inferon","value": "19.46"}],"deathRate": [{"position": 1,"nickName": "Takamina","value": "0.02"},{"position": 2,"nickName": "GrandeMafia90rus","value": "0.03"},{"position": 3,"nickName": "Inferon","value": "0.03"}],"survivalRate": [{"position": 1,"nickName": "Takamina","value": "40.33"},{"position": 2,"nickName": "GrandeMafia90rus","value": "33.1"},{"position": 3,"nickName": "Inferon","value": "29.13"}],"winRate": [{"position": 1,"nickName": "MoRiGGaN","value": "7.59"},{"position": 2,"nickName": "MisakaMikoto","value": "7.23"},{"position": 3,"nickName": "N9wko","value": "5.17"}],"averageKill": [{"position": 1,"nickName": "Razgriz","value": "10"},{"position": 2,"nickName": "SS27stickleB","value": "9.14"},{"position": 3,"nickName": "N9wko","value": "9.08"}],"averageAssists": [{"position": 1,"nickName": "Razgriz","value": "16.48"},{"position": 2,"nickName": "Shepardd","value": "14.22"},{"position": 3,"nickName": "Napdar","value": "13.88"}],"averageDeath": [{"position": 1,"nickName": "katywka","value": "4.79"},{"position": 2,"nickName": "Stach1974","value": "4.77"},{"position": 3,"nickName": "Buzzzing","value": "4.65"}],"averageDmgDone": [{"position": 1,"nickName": "DeNSkY","value": "563218"},{"position": 2,"nickName": "Venomm","value": "560336"},{"position": 3,"nickName": "dado1209","value": "554856"}],"averageHealingDone": [{"position": 1,"nickName": "RoverTrick","value": "292062"},{"position": 2,"nickName": "springbonny","value": "172590"},{"position": 3,"nickName": "kroton","value": "172382"}],"averageVp": [{"position": 1,"nickName": "AriusTerminatus","value": "76.84"},{"position": 2,"nickName": "Stigz","value": "66.92"},{"position": 3,"nickName": "EdwardS","value": "48.83"}],"deathProbability": [{"position": 1,"nickName": "Alpas","value": "71.07"},{"position": 2,"nickName": "LORDGILBERT","value": "57.05"},{"position": 3,"nickName": "windowh42","value": "56.05"}],"assistsProbability": [{"position": 1,"nickName": "Lehan4ikus","value": "82.56"},{"position": 2,"nickName": "Gudi","value": "81.65"},{"position": 3,"nickName": "daevon","value": "81.43"}],"killProbability": [{"position": 1,"nickName": "ImInUrBase","value": "55.22"},{"position": 2,"nickName": "Takamina","value": "52.94"},{"position": 3,"nickName": "DeathKitten666","value": "51.9"}],"winProbability": [{"position": 1,"nickName": "MoRiGGaN","value": "88.36"},{"position": 2,"nickName": "MisakaMikoto","value": "87.85"},{"position": 3,"nickName": "N9wko","value": "83.79"}],"lossProbability": [{"position": 1,"nickName": "Pobeda","value": "99.67"},{"position": 2,"nickName": "Rakosonic","value": "91.05"},{"position": 3,"nickName": "NikitosK","value": "69.46"}]},"pve": {"gamePlayed": [{"position": 1,"nickName": "MeGaVolt","value": "37558"},{"position": 2,"nickName": "PowerForce","value": "30166"},{"position": 3,"nickName": "Alkash","value": "30012"}],"unlimPve\_playerAttackLevel": [{"position": 1,"nickName": "PowerForce","value": "130"},{"position": 2,"nickName": "SergiyHyperborea","value": "130"},{"position": 3,"nickName": "Artall","value": "130"}],"unlimPve\_playerDefenceLevel": [{"position": 1,"nickName": "PowerForce","value": "150"},{"position": 2,"nickName": "Artall","value": "150"},{"position": 3,"nickName": "BOBAH4iK","value": "150"}]},"coop": {"gameWin": [{"position": 1,"nickName": "Aviation","value": "10772"},{"position": 2,"nickName": "steelkosack","value": "9610"},{"position": 3,"nickName": "papajoe8282","value": "8930"}],"gameLoss": [{"position": 1,"nickName": "Chrumov","value": "569"},{"position": 2,"nickName": "Aviation","value": "424"},{"position": 3,"nickName": "papajoe8282","value": "402"}],"winRate": [{"position": 1,"nickName": "Kvas","value": "1066"},{"position": 2,"nickName": "Meizu","value": "730"},{"position": 3,"nickName": "SpaceMonk","value": "679"}],"gamePlayed": [{"position": 1,"nickName": "Aviation","value": "11196"},{"position": 2,"nickName": "steelkosack","value": "9997"},{"position": 3,"nickName": "papajoe8282","value": "9332"}],"totalBattleTime": [{"position": 1,"nickName": "Aviation","value": "3588570000"},{"position": 2,"nickName": "steelkosack","value": "3430780000"},{"position": 3,"nickName": "papajoe8282","value": "3154770000"}]}}}}

 

 

Hello! Very cool API! Do I understand correctly that pvp efficacy readings are considered as “typed in a day” and not “current”?

Yes, it is. For the query: “rank = daily” returns “only what was done yesterday”.

 

Да. Для запроса: “rank = daily” возвращает “только то, что было сделано вчера”.

05.09.2009 Обновление API:

  • Добавлен поиск кланов по TAG.
  • Добавлена печать всех членов корпорации.

P.S.:

Мы заметили, что есть компании без TAG, их нельзя искать через этот API, потому что вставка пустого TAG все равно будет считаться ошибкой.

06/09/2019 Обновление API:

  • Удален “wavePve_maxWave” из дневного и абсолютного ранга. (история для этой переменной не будет сделана)
  • Добавлен “wavePve_maxWave” в рейтинг Pve.

Завтра с 00:00 до 02:00 значение будет обновлено.

Все даты указаны в часовом поясе UTC.
Данные будут обновляться каждый день с 00:00AM до 02:00AM (UTC).

 

Учитывая большой объем данных, базе данных требуется много места для длинной истории 1 или 2 года.

Поэтому для расширения пространства будет использоваться Raspberry Pi 4 (Ram 4 ГБ): https://www.raspberrypi.org/products/raspberry-pi-4-model-b/

 

Он будет у меня дома и будет работать весь день в течение неопределенного времени.

Все данные будут передаваться через сервер Аруба, и поэтому Raspberry останется «скрытым».

Чтобы гарантировать быстрый ответ и стабильный сервис, база данных Aruba будет предоставлять запросы за последние 30 дней, а Raspberry  только те, у которых более 30 дней.

 

Чтобы обеспечить более стабильную работу, Raspberry будет подключен к ИБП и будет иметь 64 ГБ microSD (класс 10 А2) в качестве жесткого диска и Pendrive (64 ГБ 3.1) в качестве резервного драйвера.

 

Сообществу напоминают, что база данных, API и среда выполнения все еще находятся в стадии разработки и тестирования, что может привести к сбоям, изменениям и удалению данных.

6 часов назад, ITalianBadBoy сказал:

Сообществу напоминают, что база данных, API и среда выполнения все еще находятся в стадии разработки и тестирования, что может привести к сбоям, изменениям и удалению данных.

Жду релиза ![:)](<fileStore.core_Emoticons>/emoticons/001.png “:)”) Как скоро он будет? 

Это хороший вопрос … Мне все еще нужно реализовать некоторые функции в API, а затем реализовать все, что связано с Raspberry …
Наконец, настоящий тест стабильности можно выполнить только на полную мощность, т. Е. Как только база данных заполнится XD …
Так что, если все пойдет хорошо в следующем месяце, мы можем сказать, что его больше нет в Альфе …

12/09/2019 Обновление API:

  • Лимит на титул был увеличен до 1000.
  • Реализация печати для историй игрока: повседневная деятельность.
  • Печатная реализация клановых историй: повседневная деятельность.

16/09/2019 Обновление API:

  • Значительное улучшение функции и времени отклика для «Get Player Rating».
  • Изменена структура ответа: «Получить рейтинг игрока»

 

ИНФОРМАЦИЯ:

  • Когда два игрока имеют одинаковое значение, в PvP-рейтинге время в PVP-сражениях будет оцениваться для определения позиции.
  • Когда два игрока имеют одинаковое значение, в рейтинге PvE количество битв PVE для определения позиции будет оцениваться для определения позиции.

21/09/2019 Обновление API:

  • К рейтингу добавляются абсолютные и ежедневные потери в PvP-игре, PvP-коэффициент выигрышей и PvP-коэффициент убийств.

@[ITalianBadBoy](< base_url >/index.php?/profile/1121225-italianbadboy/ “Перейти в профиль ITalianBadBoy”) , проверь личные сообщения. 

28/11/2009 Обновление во время выполнения:

  • Исправлена логическая проблема с загрузкой данных с тем же псевдонимом, но с другим идентификатором пользователя в истории.

Теперь, когда будут найдены данные с тем же псевдонимом, но с другим UID, все данные со старым UID будут удалены.

Я пытаюсь получить снимок трех миллионов игроков …

Я возьму первые 1000 из каждой классификации, чтобы добавить их в инструмент :smiley:

8J6w61E.png

ППц сколько работы проведено для статистики игрока и истории, великолепно!  ![:good:](<fileStore.core_Emoticons>/emoticons/good.gif “:good:”)

Спасибо, но, если честно, я должен извиниться за задержку в создании интерфейса :confused:
Я на работе большую часть дня и у меня очень мало свободного времени. Тем не менее, я хочу завершить проект, я надеюсь, что смогу сделать хорошее обновление на Рождество.

Я еще больше улучшил API для ранжирования, теперь есть еще несколько данных и никогда не превысит лимит памяти php… Но я заметил, что, поскольку подсчет очков выполняется каждый раз, когда требуется ответ, время отклика становится намного больше, когда нужно проанализировать так много игроков. 

 

Поэтому я постараюсь улучшить время отклика как можно скорее и предоставить вам интерфейс, позволяющий любому человеку легко читать данные, даже непосредственно с сайта.  ![;)](<fileStore.core_Emoticons>/emoticons/002.png “;)”)

В 12.09.2019 в 14:52, ITalianBadBoy сказал:

Лимит на титул был увеличен до 1000.

Почему максимум всё равно выводится 60 дней? 

Я, наверное, плохо себя выразил.

 

Эти данные хранятся на сервере Аруба:

API предоставляет и записывает последние 60 дней игрока.

http://www.badboytool.com/tool/sc/api.php?uid=1747817&get=all&limit=60    (0 < limit <= 60)

 

«Рейтинг» возвращает до 1000 лучших игроков в каждой категории.

http://www.badboytool.com/tool/sc/api.php?rank=absolute&limit=1000     (0 < limit <= 1000)

 

 

Историки с более чем 60 днями были заархивированы на Raspberry Pi 4 дома.

В настоящее время Raspberry Pi 4 используется для сбора и анализа данных о трех с половиной миллионах игроков.

Поэтому на данный момент данные за более чем 60 дней недоступны…