mirror of
https://github.com/Ahrimdon/detailed-cod-tracker.git
synced 2024-11-03 16:46:44 -05:00
Added more cmdline arguments, match splitting, added duration and match time conversions, fintuned code.
This commit is contained in:
parent
a5a8d76ef1
commit
825cc17025
Binary file not shown.
@ -14,7 +14,7 @@
|
||||
"title": "mw",
|
||||
"platform": "battle",
|
||||
"username": "Ahrimdon#1597",
|
||||
"activeDate": 1696755151000,
|
||||
"activeDate": 1697188469000,
|
||||
"activityType": "mp",
|
||||
"id": null
|
||||
},
|
||||
|
File diff suppressed because it is too large
Load Diff
113
examples/example_matches/match_1.json
Normal file
113
examples/example_matches/match_1.json
Normal file
@ -0,0 +1,113 @@
|
||||
{
|
||||
"utcStartSeconds": "GMT: Friday, October 13, 2023 09:09:15 AM",
|
||||
"utcEndSeconds": "GMT: Friday, October 13, 2023 09:14:29 AM",
|
||||
"map": "mp_m_speedball",
|
||||
"mode": "Gunfight",
|
||||
"matchID": "9418543359897068941",
|
||||
"duration": "5 Minutes 14 Seconds 0 Milliseconds",
|
||||
"playlistName": null,
|
||||
"version": 1,
|
||||
"gameType": "mp",
|
||||
"result": "loss",
|
||||
"winningTeam": "axis",
|
||||
"gameBattle": false,
|
||||
"team1Score": 3,
|
||||
"team2Score": 6,
|
||||
"isPresentAtEnd": true,
|
||||
"playerStats": {
|
||||
"kills": 6.0,
|
||||
"medalXp": 2350.0,
|
||||
"matchXp": 1225.0,
|
||||
"averageSpeedDuringMatch": 0.0,
|
||||
"scoreXp": 650.0,
|
||||
"accuracy": 0.1651376146788991,
|
||||
"wallBangs": 0.0,
|
||||
"shotsLanded": 36.0,
|
||||
"score": 650.0,
|
||||
"totalXp": 4225.0,
|
||||
"headshots": 0.0,
|
||||
"assists": 1.0,
|
||||
"rank": 54.0,
|
||||
"scorePerMinute": 106.26702997275204,
|
||||
"distanceTraveled": 922.4512,
|
||||
"deaths": 6.0,
|
||||
"kdRatio": 1.0,
|
||||
"shotsMissed": 182.0,
|
||||
"timePlayed": 367.0,
|
||||
"executions": 0.0,
|
||||
"suicides": 0.0,
|
||||
"seasonRank": 10.0,
|
||||
"nearmisses": 131.0,
|
||||
"percentTimeMoving": 0.0,
|
||||
"miscXp": 0.0,
|
||||
"longestStreak": 5.0,
|
||||
"damageDone": 905.0,
|
||||
"shotsFired": 218.0,
|
||||
"damageTaken": 748.0
|
||||
},
|
||||
"weaponStats": {
|
||||
"AS VAL": {
|
||||
"hits": 5.0,
|
||||
"kills": 1.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 4.0,
|
||||
"shots": 42.0,
|
||||
"startingWeaponXp": 68500.0,
|
||||
"deaths": 2.0,
|
||||
"xpEarned": 180.0
|
||||
},
|
||||
"1911": {
|
||||
"hits": 1.0,
|
||||
"kills": 0.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 6.0,
|
||||
"shots": 1.0,
|
||||
"startingWeaponXp": 33000.0,
|
||||
"deaths": 1.0,
|
||||
"xpEarned": 0.0
|
||||
},
|
||||
"JAK-12": {
|
||||
"hits": 1.0,
|
||||
"kills": 0.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 3.0,
|
||||
"shots": 8.0,
|
||||
"startingWeaponXp": 70700.0,
|
||||
"deaths": 1.0,
|
||||
"xpEarned": 0.0
|
||||
},
|
||||
"M19": {
|
||||
"hits": 1.0,
|
||||
"kills": 0.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 3.0,
|
||||
"shots": 10.0,
|
||||
"startingWeaponXp": 33000.0,
|
||||
"deaths": 0.0,
|
||||
"xpEarned": 0.0
|
||||
},
|
||||
"Holger-26": {
|
||||
"hits": 1.0,
|
||||
"kills": 0.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 5.0,
|
||||
"shots": 39.0,
|
||||
"startingWeaponXp": 77500.0,
|
||||
"deaths": 2.0,
|
||||
"xpEarned": 0.0
|
||||
},
|
||||
"Uzi": {
|
||||
"hits": 8.0,
|
||||
"kills": 1.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 0.0,
|
||||
"shots": 40.0,
|
||||
"startingWeaponXp": 72900.0,
|
||||
"deaths": 0.0,
|
||||
"xpEarned": 270.0
|
||||
}
|
||||
},
|
||||
"allPlayers": null,
|
||||
"Gunfight": false,
|
||||
"privateMatch": false
|
||||
}
|
123
examples/example_matches/match_10.json
Normal file
123
examples/example_matches/match_10.json
Normal file
@ -0,0 +1,123 @@
|
||||
{
|
||||
"utcStartSeconds": "GMT: Friday, October 13, 2023 08:06:34 AM",
|
||||
"utcEndSeconds": "GMT: Friday, October 13, 2023 08:11:52 AM",
|
||||
"map": "mp_m_hill",
|
||||
"mode": "Gunfight",
|
||||
"matchID": "17778358267058167779",
|
||||
"duration": "5 Minutes 18 Seconds 0 Milliseconds",
|
||||
"playlistName": null,
|
||||
"version": 1,
|
||||
"gameType": "mp",
|
||||
"result": "win",
|
||||
"winningTeam": "axis",
|
||||
"gameBattle": false,
|
||||
"team1Score": 2,
|
||||
"team2Score": 6,
|
||||
"isPresentAtEnd": true,
|
||||
"playerStats": {
|
||||
"kills": 9.0,
|
||||
"medalXp": 2470.0,
|
||||
"matchXp": 1787.0,
|
||||
"averageSpeedDuringMatch": 0.0,
|
||||
"scoreXp": 1025.0,
|
||||
"accuracy": 0.19727891156462585,
|
||||
"wallBangs": 0.0,
|
||||
"shotsLanded": 29.0,
|
||||
"score": 1025.0,
|
||||
"totalXp": 5282.0,
|
||||
"headshots": 2.0,
|
||||
"assists": 3.0,
|
||||
"rank": 54.0,
|
||||
"scorePerMinute": 171.3091922005571,
|
||||
"distanceTraveled": 2091.75,
|
||||
"deaths": 2.0,
|
||||
"kdRatio": 4.5,
|
||||
"shotsMissed": 118.0,
|
||||
"timePlayed": 359.0,
|
||||
"executions": 0.0,
|
||||
"suicides": 0.0,
|
||||
"seasonRank": 10.0,
|
||||
"nearmisses": 74.0,
|
||||
"percentTimeMoving": 0.0,
|
||||
"miscXp": 0.0,
|
||||
"longestStreak": 7.0,
|
||||
"damageDone": 1053.0,
|
||||
"shotsFired": 147.0,
|
||||
"damageTaken": 226.0
|
||||
},
|
||||
"weaponStats": {
|
||||
"semtex_mp": {
|
||||
"hits": 0.0,
|
||||
"kills": 0.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 0.0,
|
||||
"shots": 0.0,
|
||||
"startingWeaponXp": 0.0,
|
||||
"deaths": 0.0,
|
||||
"xpEarned": 0.0
|
||||
},
|
||||
"FR 5.56": {
|
||||
"hits": 9.0,
|
||||
"kills": 3.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 0.0,
|
||||
"shots": 43.0,
|
||||
"startingWeaponXp": 97100.0,
|
||||
"deaths": 1.0,
|
||||
"xpEarned": 540.0
|
||||
},
|
||||
"X16": {
|
||||
"hits": 2.0,
|
||||
"kills": 1.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 2.0,
|
||||
"shots": 24.0,
|
||||
"startingWeaponXp": 34600.0,
|
||||
"deaths": 0.0,
|
||||
"xpEarned": 270.0
|
||||
},
|
||||
".50 GS": {
|
||||
"hits": 1.0,
|
||||
"kills": 0.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 5.0,
|
||||
"shots": 5.0,
|
||||
"startingWeaponXp": 46500.0,
|
||||
"deaths": 1.0,
|
||||
"xpEarned": 0.0
|
||||
},
|
||||
"Origin 12 Shotgun": {
|
||||
"hits": 4.0,
|
||||
"kills": 1.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 1.0,
|
||||
"shots": 4.0,
|
||||
"startingWeaponXp": 62100.0,
|
||||
"deaths": 0.0,
|
||||
"xpEarned": 180.0
|
||||
},
|
||||
"Fennec": {
|
||||
"hits": 4.0,
|
||||
"kills": 1.0,
|
||||
"headshots": 1.0,
|
||||
"loadoutIndex": 4.0,
|
||||
"shots": 21.0,
|
||||
"startingWeaponXp": 70700.0,
|
||||
"deaths": 0.0,
|
||||
"xpEarned": 180.0
|
||||
},
|
||||
"frag_grenade_mp": {
|
||||
"hits": 0.0,
|
||||
"kills": 0.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 4.0,
|
||||
"shots": 0.0,
|
||||
"startingWeaponXp": 0.0,
|
||||
"deaths": 0.0,
|
||||
"xpEarned": 0.0
|
||||
}
|
||||
},
|
||||
"allPlayers": null,
|
||||
"Gunfight": false,
|
||||
"privateMatch": false
|
||||
}
|
93
examples/example_matches/match_11.json
Normal file
93
examples/example_matches/match_11.json
Normal file
@ -0,0 +1,93 @@
|
||||
{
|
||||
"utcStartSeconds": "GMT: Friday, October 13, 2023 08:00:29 AM",
|
||||
"utcEndSeconds": "GMT: Friday, October 13, 2023 08:04:42 AM",
|
||||
"map": "mp_m_drainage",
|
||||
"mode": "Gunfight",
|
||||
"matchID": "12628755660379406419",
|
||||
"duration": "4 Minutes 13 Seconds 0 Milliseconds",
|
||||
"playlistName": null,
|
||||
"version": 1,
|
||||
"gameType": "mp",
|
||||
"result": "win",
|
||||
"winningTeam": "axis",
|
||||
"gameBattle": false,
|
||||
"team1Score": 1,
|
||||
"team2Score": 6,
|
||||
"isPresentAtEnd": true,
|
||||
"playerStats": {
|
||||
"kills": 5.0,
|
||||
"medalXp": 2095.0,
|
||||
"matchXp": 1309.0,
|
||||
"averageSpeedDuringMatch": 0.0,
|
||||
"scoreXp": 775.0,
|
||||
"accuracy": 0.2391304347826087,
|
||||
"wallBangs": 0.0,
|
||||
"shotsLanded": 22.0,
|
||||
"score": 775.0,
|
||||
"totalXp": 4179.0,
|
||||
"headshots": 1.0,
|
||||
"assists": 4.0,
|
||||
"rank": 54.0,
|
||||
"scorePerMinute": 160.34482758620692,
|
||||
"distanceTraveled": 1281.8544,
|
||||
"deaths": 0.0,
|
||||
"kdRatio": 5.0,
|
||||
"shotsMissed": 70.0,
|
||||
"timePlayed": 290.0,
|
||||
"executions": 0.0,
|
||||
"suicides": 0.0,
|
||||
"seasonRank": 10.0,
|
||||
"nearmisses": 53.0,
|
||||
"percentTimeMoving": 0.0,
|
||||
"miscXp": 0.0,
|
||||
"longestStreak": 5.0,
|
||||
"damageDone": 903.0,
|
||||
"shotsFired": 92.0,
|
||||
"damageTaken": 254.0
|
||||
},
|
||||
"weaponStats": {
|
||||
"Renetti": {
|
||||
"hits": 3.0,
|
||||
"kills": 0.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 0.0,
|
||||
"shots": 24.0,
|
||||
"startingWeaponXp": 54000.0,
|
||||
"deaths": 0.0,
|
||||
"xpEarned": 135.0
|
||||
},
|
||||
"M91": {
|
||||
"hits": 6.0,
|
||||
"kills": 2.0,
|
||||
"headshots": 1.0,
|
||||
"loadoutIndex": 3.0,
|
||||
"shots": 12.0,
|
||||
"startingWeaponXp": 79800.0,
|
||||
"deaths": 0.0,
|
||||
"xpEarned": 360.0
|
||||
},
|
||||
"HDR": {
|
||||
"hits": 2.0,
|
||||
"kills": 1.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 5.0,
|
||||
"shots": 6.0,
|
||||
"startingWeaponXp": 37800.0,
|
||||
"deaths": 0.0,
|
||||
"xpEarned": 180.0
|
||||
},
|
||||
"Striker 45": {
|
||||
"hits": 3.0,
|
||||
"kills": 0.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 6.0,
|
||||
"shots": 8.0,
|
||||
"startingWeaponXp": 72900.0,
|
||||
"deaths": 0.0,
|
||||
"xpEarned": 135.0
|
||||
}
|
||||
},
|
||||
"allPlayers": null,
|
||||
"Gunfight": false,
|
||||
"privateMatch": false
|
||||
}
|
123
examples/example_matches/match_12.json
Normal file
123
examples/example_matches/match_12.json
Normal file
@ -0,0 +1,123 @@
|
||||
{
|
||||
"utcStartSeconds": "GMT: Friday, October 13, 2023 07:53:08 AM",
|
||||
"utcEndSeconds": "GMT: Friday, October 13, 2023 07:58:40 AM",
|
||||
"map": "mp_m_wallco2",
|
||||
"mode": "Gunfight",
|
||||
"matchID": "13011335364533875207",
|
||||
"duration": "5 Minutes 32 Seconds 0 Milliseconds",
|
||||
"playlistName": null,
|
||||
"version": 1,
|
||||
"gameType": "mp",
|
||||
"result": "loss",
|
||||
"winningTeam": "allies",
|
||||
"gameBattle": false,
|
||||
"team1Score": 6,
|
||||
"team2Score": 4,
|
||||
"isPresentAtEnd": true,
|
||||
"playerStats": {
|
||||
"kills": 9.0,
|
||||
"medalXp": 2175.0,
|
||||
"matchXp": 1179.0,
|
||||
"averageSpeedDuringMatch": 0.0,
|
||||
"scoreXp": 900.0,
|
||||
"accuracy": 0.19186046511627908,
|
||||
"wallBangs": 1.0,
|
||||
"shotsLanded": 33.0,
|
||||
"score": 900.0,
|
||||
"totalXp": 4254.0,
|
||||
"headshots": 0.0,
|
||||
"assists": 0.0,
|
||||
"rank": 54.0,
|
||||
"scorePerMinute": 145.16129032258064,
|
||||
"distanceTraveled": 884.6166,
|
||||
"deaths": 6.0,
|
||||
"kdRatio": 1.5,
|
||||
"shotsMissed": 139.0,
|
||||
"timePlayed": 372.0,
|
||||
"executions": 0.0,
|
||||
"suicides": 0.0,
|
||||
"seasonRank": 10.0,
|
||||
"nearmisses": 82.0,
|
||||
"percentTimeMoving": 0.0,
|
||||
"miscXp": 0.0,
|
||||
"longestStreak": 3.0,
|
||||
"damageDone": 1043.0,
|
||||
"shotsFired": 172.0,
|
||||
"damageTaken": 745.0
|
||||
},
|
||||
"weaponStats": {
|
||||
"semtex_mp": {
|
||||
"hits": 0.0,
|
||||
"kills": 0.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 2.0,
|
||||
"shots": 0.0,
|
||||
"startingWeaponXp": 0.0,
|
||||
"deaths": 0.0,
|
||||
"xpEarned": 0.0
|
||||
},
|
||||
"X16": {
|
||||
"hits": 3.0,
|
||||
"kills": 1.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 2.0,
|
||||
"shots": 10.0,
|
||||
"startingWeaponXp": 34600.0,
|
||||
"deaths": 0.0,
|
||||
"xpEarned": 180.0
|
||||
},
|
||||
"725": {
|
||||
"hits": 1.0,
|
||||
"kills": 0.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 2.0,
|
||||
"shots": 6.0,
|
||||
"startingWeaponXp": 66300.0,
|
||||
"deaths": 1.0,
|
||||
"xpEarned": 0.0
|
||||
},
|
||||
"PKM": {
|
||||
"hits": 9.0,
|
||||
"kills": 2.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 0.0,
|
||||
"shots": 31.0,
|
||||
"startingWeaponXp": 77500.0,
|
||||
"deaths": 0.0,
|
||||
"xpEarned": 360.0
|
||||
},
|
||||
"ISO": {
|
||||
"hits": 8.0,
|
||||
"kills": 2.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 6.0,
|
||||
"shots": 22.0,
|
||||
"startingWeaponXp": 72900.0,
|
||||
"deaths": 0.0,
|
||||
"xpEarned": 360.0
|
||||
},
|
||||
"HDR": {
|
||||
"hits": 2.0,
|
||||
"kills": 2.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 4.0,
|
||||
"shots": 3.0,
|
||||
"startingWeaponXp": 37800.0,
|
||||
"deaths": 0.0,
|
||||
"xpEarned": 360.0
|
||||
},
|
||||
"Grau 5.56": {
|
||||
"hits": 0.0,
|
||||
"kills": 0.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 8.0,
|
||||
"shots": 21.0,
|
||||
"startingWeaponXp": 99700.0,
|
||||
"deaths": 1.0,
|
||||
"xpEarned": 0.0
|
||||
}
|
||||
},
|
||||
"allPlayers": null,
|
||||
"Gunfight": false,
|
||||
"privateMatch": false
|
||||
}
|
113
examples/example_matches/match_13.json
Normal file
113
examples/example_matches/match_13.json
Normal file
@ -0,0 +1,113 @@
|
||||
{
|
||||
"utcStartSeconds": "GMT: Friday, October 13, 2023 07:48:06 AM",
|
||||
"utcEndSeconds": "GMT: Friday, October 13, 2023 07:51:26 AM",
|
||||
"map": "mp_m_king",
|
||||
"mode": "Gunfight",
|
||||
"matchID": "11409852559879680761",
|
||||
"duration": "3 Minutes 20 Seconds 0 Milliseconds",
|
||||
"playlistName": null,
|
||||
"version": 1,
|
||||
"gameType": "mp",
|
||||
"result": "win",
|
||||
"winningTeam": "axis",
|
||||
"gameBattle": false,
|
||||
"team1Score": 1,
|
||||
"team2Score": 6,
|
||||
"isPresentAtEnd": true,
|
||||
"playerStats": {
|
||||
"kills": 4.0,
|
||||
"medalXp": 1380.0,
|
||||
"matchXp": 673.0,
|
||||
"averageSpeedDuringMatch": 0.0,
|
||||
"scoreXp": 475.0,
|
||||
"accuracy": 0.075,
|
||||
"wallBangs": 0.0,
|
||||
"shotsLanded": 6.0,
|
||||
"score": 475.0,
|
||||
"totalXp": 2528.0,
|
||||
"headshots": 1.0,
|
||||
"assists": 2.0,
|
||||
"rank": 54.0,
|
||||
"scorePerMinute": 113.09523809523809,
|
||||
"distanceTraveled": 1443.3264,
|
||||
"deaths": 1.0,
|
||||
"kdRatio": 4.0,
|
||||
"shotsMissed": 74.0,
|
||||
"timePlayed": 252.0,
|
||||
"executions": 0.0,
|
||||
"suicides": 0.0,
|
||||
"seasonRank": 10.0,
|
||||
"nearmisses": 26.0,
|
||||
"percentTimeMoving": 0.0,
|
||||
"miscXp": 0.0,
|
||||
"longestStreak": 4.0,
|
||||
"damageDone": 291.0,
|
||||
"shotsFired": 80.0,
|
||||
"damageTaken": 241.0
|
||||
},
|
||||
"weaponStats": {
|
||||
"FAL": {
|
||||
"hits": 0.0,
|
||||
"kills": 0.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 5.0,
|
||||
"shots": 2.0,
|
||||
"startingWeaponXp": 102300.0,
|
||||
"deaths": 1.0,
|
||||
"xpEarned": 0.0
|
||||
},
|
||||
"1911": {
|
||||
"hits": 2.0,
|
||||
"kills": 1.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 2.0,
|
||||
"shots": 14.0,
|
||||
"startingWeaponXp": 33000.0,
|
||||
"deaths": 0.0,
|
||||
"xpEarned": 180.0
|
||||
},
|
||||
"X16": {
|
||||
"hits": 0.0,
|
||||
"kills": 0.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 1.0,
|
||||
"shots": 12.0,
|
||||
"startingWeaponXp": 34600.0,
|
||||
"deaths": 0.0,
|
||||
"xpEarned": 0.0
|
||||
},
|
||||
"molotov_mp": {
|
||||
"hits": 0.0,
|
||||
"kills": 0.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 1.0,
|
||||
"shots": 0.0,
|
||||
"startingWeaponXp": 0.0,
|
||||
"deaths": 0.0,
|
||||
"xpEarned": 0.0
|
||||
},
|
||||
"PKM": {
|
||||
"hits": 0.0,
|
||||
"kills": 0.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 6.0,
|
||||
"shots": 23.0,
|
||||
"startingWeaponXp": 77500.0,
|
||||
"deaths": 0.0,
|
||||
"xpEarned": 0.0
|
||||
},
|
||||
"Model 680": {
|
||||
"hits": 0.0,
|
||||
"kills": 0.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 1.0,
|
||||
"shots": 1.0,
|
||||
"startingWeaponXp": 62100.0,
|
||||
"deaths": 0.0,
|
||||
"xpEarned": 0.0
|
||||
}
|
||||
},
|
||||
"allPlayers": null,
|
||||
"Gunfight": false,
|
||||
"privateMatch": false
|
||||
}
|
103
examples/example_matches/match_14.json
Normal file
103
examples/example_matches/match_14.json
Normal file
@ -0,0 +1,103 @@
|
||||
{
|
||||
"utcStartSeconds": "GMT: Friday, October 13, 2023 07:41:23 AM",
|
||||
"utcEndSeconds": "GMT: Friday, October 13, 2023 07:46:05 AM",
|
||||
"map": "mp_m_trench",
|
||||
"mode": "Gunfight",
|
||||
"matchID": "14167686646012486282",
|
||||
"duration": "4 Minutes 42 Seconds 0 Milliseconds",
|
||||
"playlistName": null,
|
||||
"version": 1,
|
||||
"gameType": "mp",
|
||||
"result": "win",
|
||||
"winningTeam": "axis",
|
||||
"gameBattle": false,
|
||||
"team1Score": 2,
|
||||
"team2Score": 6,
|
||||
"isPresentAtEnd": true,
|
||||
"playerStats": {
|
||||
"kills": 9.0,
|
||||
"medalXp": 2220.0,
|
||||
"matchXp": 1142.0,
|
||||
"averageSpeedDuringMatch": 0.0,
|
||||
"scoreXp": 900.0,
|
||||
"accuracy": 0.2033898305084746,
|
||||
"wallBangs": 0.0,
|
||||
"shotsLanded": 24.0,
|
||||
"score": 900.0,
|
||||
"totalXp": 4262.0,
|
||||
"headshots": 1.0,
|
||||
"assists": 0.0,
|
||||
"rank": 54.0,
|
||||
"scorePerMinute": 161.67664670658684,
|
||||
"distanceTraveled": 1327.759,
|
||||
"deaths": 2.0,
|
||||
"kdRatio": 4.5,
|
||||
"shotsMissed": 94.0,
|
||||
"timePlayed": 334.0,
|
||||
"executions": 0.0,
|
||||
"suicides": 0.0,
|
||||
"seasonRank": 10.0,
|
||||
"nearmisses": 65.0,
|
||||
"percentTimeMoving": 0.0,
|
||||
"miscXp": 0.0,
|
||||
"longestStreak": 5.0,
|
||||
"damageDone": 889.0,
|
||||
"shotsFired": 118.0,
|
||||
"damageTaken": 353.0
|
||||
},
|
||||
"weaponStats": {
|
||||
"1911": {
|
||||
"hits": 2.0,
|
||||
"kills": 1.0,
|
||||
"headshots": 1.0,
|
||||
"loadoutIndex": 7.0,
|
||||
"shots": 6.0,
|
||||
"startingWeaponXp": 33000.0,
|
||||
"deaths": 0.0,
|
||||
"xpEarned": 180.0
|
||||
},
|
||||
"X16": {
|
||||
"hits": 1.0,
|
||||
"kills": 1.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 5.0,
|
||||
"shots": 2.0,
|
||||
"startingWeaponXp": 34600.0,
|
||||
"deaths": 0.0,
|
||||
"xpEarned": 180.0
|
||||
},
|
||||
"MP7": {
|
||||
"hits": 9.0,
|
||||
"kills": 1.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 5.0,
|
||||
"shots": 66.0,
|
||||
"startingWeaponXp": 70700.0,
|
||||
"deaths": 0.0,
|
||||
"xpEarned": 180.0
|
||||
},
|
||||
"JAK-12": {
|
||||
"hits": 0.0,
|
||||
"kills": 0.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 3.0,
|
||||
"shots": 3.0,
|
||||
"startingWeaponXp": 70700.0,
|
||||
"deaths": 1.0,
|
||||
"xpEarned": 0.0
|
||||
},
|
||||
"Rytec AMR": {
|
||||
"hits": 1.0,
|
||||
"kills": 2.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 1.0,
|
||||
"shots": 2.0,
|
||||
"startingWeaponXp": 33000.0,
|
||||
"deaths": 0.0,
|
||||
"xpEarned": 360.0
|
||||
}
|
||||
},
|
||||
"allPlayers": null,
|
||||
"Gunfight": false,
|
||||
"privateMatch": false
|
||||
}
|
83
examples/example_matches/match_15.json
Normal file
83
examples/example_matches/match_15.json
Normal file
@ -0,0 +1,83 @@
|
||||
{
|
||||
"utcStartSeconds": "GMT: Friday, October 13, 2023 07:35:37 AM",
|
||||
"utcEndSeconds": "GMT: Friday, October 13, 2023 07:39:18 AM",
|
||||
"map": "mp_rust",
|
||||
"mode": "Gunfight",
|
||||
"matchID": "1807617646663886523",
|
||||
"duration": "3 Minutes 41 Seconds 0 Milliseconds",
|
||||
"playlistName": null,
|
||||
"version": 1,
|
||||
"gameType": "mp",
|
||||
"result": "win",
|
||||
"winningTeam": "allies",
|
||||
"gameBattle": false,
|
||||
"team1Score": 6,
|
||||
"team2Score": 2,
|
||||
"isPresentAtEnd": true,
|
||||
"playerStats": {
|
||||
"kills": 3.0,
|
||||
"medalXp": 1340.0,
|
||||
"matchXp": 870.0,
|
||||
"averageSpeedDuringMatch": 0.0,
|
||||
"scoreXp": 375.0,
|
||||
"accuracy": 0.30952380952380953,
|
||||
"wallBangs": 0.0,
|
||||
"shotsLanded": 13.0,
|
||||
"score": 375.0,
|
||||
"totalXp": 2585.0,
|
||||
"headshots": 1.0,
|
||||
"assists": 1.0,
|
||||
"rank": 54.0,
|
||||
"scorePerMinute": 82.11678832116787,
|
||||
"distanceTraveled": 916.12476,
|
||||
"deaths": 3.0,
|
||||
"kdRatio": 1.0,
|
||||
"shotsMissed": 29.0,
|
||||
"timePlayed": 274.0,
|
||||
"executions": 0.0,
|
||||
"suicides": 0.0,
|
||||
"seasonRank": 10.0,
|
||||
"nearmisses": 27.0,
|
||||
"percentTimeMoving": 0.0,
|
||||
"miscXp": 0.0,
|
||||
"longestStreak": 2.0,
|
||||
"damageDone": 475.0,
|
||||
"shotsFired": 42.0,
|
||||
"damageTaken": 378.0
|
||||
},
|
||||
"weaponStats": {
|
||||
"SP-R 208": {
|
||||
"hits": 1.0,
|
||||
"kills": 0.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 0.0,
|
||||
"shots": 2.0,
|
||||
"startingWeaponXp": 72900.0,
|
||||
"deaths": 2.0,
|
||||
"xpEarned": 135.0
|
||||
},
|
||||
"X16": {
|
||||
"hits": 3.0,
|
||||
"kills": 0.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 5.0,
|
||||
"shots": 24.0,
|
||||
"startingWeaponXp": 34600.0,
|
||||
"deaths": 1.0,
|
||||
"xpEarned": 0.0
|
||||
},
|
||||
"JAK-12": {
|
||||
"hits": 1.0,
|
||||
"kills": 0.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 3.0,
|
||||
"shots": 5.0,
|
||||
"startingWeaponXp": 70700.0,
|
||||
"deaths": 0.0,
|
||||
"xpEarned": 0.0
|
||||
}
|
||||
},
|
||||
"allPlayers": null,
|
||||
"Gunfight": false,
|
||||
"privateMatch": false
|
||||
}
|
103
examples/example_matches/match_16.json
Normal file
103
examples/example_matches/match_16.json
Normal file
@ -0,0 +1,103 @@
|
||||
{
|
||||
"utcStartSeconds": "GMT: Friday, October 13, 2023 07:28:57 AM",
|
||||
"utcEndSeconds": "GMT: Friday, October 13, 2023 07:33:23 AM",
|
||||
"map": "mp_m_cornfield",
|
||||
"mode": "Gunfight",
|
||||
"matchID": "1061289958884906199",
|
||||
"duration": "4 Minutes 26 Seconds 0 Milliseconds",
|
||||
"playlistName": null,
|
||||
"version": 1,
|
||||
"gameType": "mp",
|
||||
"result": "win",
|
||||
"winningTeam": "axis",
|
||||
"gameBattle": false,
|
||||
"team1Score": 3,
|
||||
"team2Score": 6,
|
||||
"isPresentAtEnd": true,
|
||||
"playerStats": {
|
||||
"kills": 7.0,
|
||||
"medalXp": 1630.0,
|
||||
"matchXp": 771.0,
|
||||
"averageSpeedDuringMatch": 0.0,
|
||||
"scoreXp": 700.0,
|
||||
"accuracy": 0.2698412698412698,
|
||||
"wallBangs": 0.0,
|
||||
"shotsLanded": 17.0,
|
||||
"score": 700.0,
|
||||
"totalXp": 3101.0,
|
||||
"headshots": 0.0,
|
||||
"assists": 0.0,
|
||||
"rank": 54.0,
|
||||
"scorePerMinute": 139.0728476821192,
|
||||
"distanceTraveled": 562.38293,
|
||||
"deaths": 3.0,
|
||||
"kdRatio": 2.3333333333333335,
|
||||
"shotsMissed": 46.0,
|
||||
"timePlayed": 302.0,
|
||||
"executions": 0.0,
|
||||
"suicides": 0.0,
|
||||
"seasonRank": 10.0,
|
||||
"nearmisses": 32.0,
|
||||
"percentTimeMoving": 0.0,
|
||||
"miscXp": 0.0,
|
||||
"longestStreak": 3.0,
|
||||
"damageDone": 701.0,
|
||||
"shotsFired": 63.0,
|
||||
"damageTaken": 396.0
|
||||
},
|
||||
"weaponStats": {
|
||||
"1911": {
|
||||
"hits": 3.0,
|
||||
"kills": 1.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 0.0,
|
||||
"shots": 6.0,
|
||||
"startingWeaponXp": 33000.0,
|
||||
"deaths": 0.0,
|
||||
"xpEarned": 180.0
|
||||
},
|
||||
"Crossbow": {
|
||||
"hits": 0.0,
|
||||
"kills": 0.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 1.0,
|
||||
"shots": 1.0,
|
||||
"startingWeaponXp": 48300.0,
|
||||
"deaths": 1.0,
|
||||
"xpEarned": 0.0
|
||||
},
|
||||
"MG34": {
|
||||
"hits": 0.0,
|
||||
"kills": 0.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 4.0,
|
||||
"shots": 9.0,
|
||||
"startingWeaponXp": 77500.0,
|
||||
"deaths": 1.0,
|
||||
"xpEarned": 0.0
|
||||
},
|
||||
"Oden": {
|
||||
"hits": 9.0,
|
||||
"kills": 3.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 2.0,
|
||||
"shots": 23.0,
|
||||
"startingWeaponXp": 99700.0,
|
||||
"deaths": 1.0,
|
||||
"xpEarned": 540.0
|
||||
},
|
||||
"Model 680": {
|
||||
"hits": 1.0,
|
||||
"kills": 1.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 6.0,
|
||||
"shots": 3.0,
|
||||
"startingWeaponXp": 62100.0,
|
||||
"deaths": 0.0,
|
||||
"xpEarned": 180.0
|
||||
}
|
||||
},
|
||||
"allPlayers": null,
|
||||
"Gunfight": false,
|
||||
"privateMatch": false
|
||||
}
|
113
examples/example_matches/match_17.json
Normal file
113
examples/example_matches/match_17.json
Normal file
@ -0,0 +1,113 @@
|
||||
{
|
||||
"utcStartSeconds": "GMT: Friday, October 13, 2023 07:22:15 AM",
|
||||
"utcEndSeconds": "GMT: Friday, October 13, 2023 07:26:58 AM",
|
||||
"map": "mp_m_cargo",
|
||||
"mode": "Gunfight",
|
||||
"matchID": "12407184959904712603",
|
||||
"duration": "4 Minutes 43 Seconds 0 Milliseconds",
|
||||
"playlistName": null,
|
||||
"version": 1,
|
||||
"gameType": "mp",
|
||||
"result": "loss",
|
||||
"winningTeam": "axis",
|
||||
"gameBattle": false,
|
||||
"team1Score": 2,
|
||||
"team2Score": 6,
|
||||
"isPresentAtEnd": true,
|
||||
"playerStats": {
|
||||
"kills": 5.0,
|
||||
"medalXp": 1340.0,
|
||||
"matchXp": 820.0,
|
||||
"averageSpeedDuringMatch": 0.0,
|
||||
"scoreXp": 500.0,
|
||||
"accuracy": 0.1590909090909091,
|
||||
"wallBangs": 0.0,
|
||||
"shotsLanded": 14.0,
|
||||
"score": 500.0,
|
||||
"totalXp": 2660.0,
|
||||
"headshots": 0.0,
|
||||
"assists": 0.0,
|
||||
"rank": 54.0,
|
||||
"scorePerMinute": 95.54140127388536,
|
||||
"distanceTraveled": 745.87225,
|
||||
"deaths": 6.0,
|
||||
"kdRatio": 0.8333333333333334,
|
||||
"shotsMissed": 74.0,
|
||||
"timePlayed": 314.0,
|
||||
"executions": 0.0,
|
||||
"suicides": 0.0,
|
||||
"seasonRank": 10.0,
|
||||
"nearmisses": 39.0,
|
||||
"percentTimeMoving": 0.0,
|
||||
"miscXp": 0.0,
|
||||
"longestStreak": 3.0,
|
||||
"damageDone": 648.0,
|
||||
"shotsFired": 88.0,
|
||||
"damageTaken": 698.0
|
||||
},
|
||||
"weaponStats": {
|
||||
"M91": {
|
||||
"hits": 0.0,
|
||||
"kills": 0.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 3.0,
|
||||
"shots": 2.0,
|
||||
"startingWeaponXp": 79800.0,
|
||||
"deaths": 1.0,
|
||||
"xpEarned": 0.0
|
||||
},
|
||||
"semtex_mp": {
|
||||
"hits": 0.0,
|
||||
"kills": 0.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 3.0,
|
||||
"shots": 0.0,
|
||||
"startingWeaponXp": 0.0,
|
||||
"deaths": 0.0,
|
||||
"xpEarned": 0.0
|
||||
},
|
||||
"X16": {
|
||||
"hits": 0.0,
|
||||
"kills": 0.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 4.0,
|
||||
"shots": 3.0,
|
||||
"startingWeaponXp": 34600.0,
|
||||
"deaths": 0.0,
|
||||
"xpEarned": 0.0
|
||||
},
|
||||
"Striker 45": {
|
||||
"hits": 7.0,
|
||||
"kills": 2.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 1.0,
|
||||
"shots": 37.0,
|
||||
"startingWeaponXp": 72900.0,
|
||||
"deaths": 1.0,
|
||||
"xpEarned": 360.0
|
||||
},
|
||||
"Oden": {
|
||||
"hits": 2.0,
|
||||
"kills": 1.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 0.0,
|
||||
"shots": 36.0,
|
||||
"startingWeaponXp": 99700.0,
|
||||
"deaths": 2.0,
|
||||
"xpEarned": 180.0
|
||||
},
|
||||
"R9-0 Shotgun": {
|
||||
"hits": 0.0,
|
||||
"kills": 0.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 4.0,
|
||||
"shots": 0.0,
|
||||
"startingWeaponXp": 58000.0,
|
||||
"deaths": 2.0,
|
||||
"xpEarned": 0.0
|
||||
}
|
||||
},
|
||||
"allPlayers": null,
|
||||
"Gunfight": false,
|
||||
"privateMatch": false
|
||||
}
|
93
examples/example_matches/match_18.json
Normal file
93
examples/example_matches/match_18.json
Normal file
@ -0,0 +1,93 @@
|
||||
{
|
||||
"utcStartSeconds": "GMT: Friday, October 13, 2023 07:17:06 AM",
|
||||
"utcEndSeconds": "GMT: Friday, October 13, 2023 07:19:53 AM",
|
||||
"map": "mp_m_cage",
|
||||
"mode": "Gunfight",
|
||||
"matchID": "3236775995900435719",
|
||||
"duration": "2 Minutes 47 Seconds 0 Milliseconds",
|
||||
"playlistName": null,
|
||||
"version": 1,
|
||||
"gameType": "mp",
|
||||
"result": "loss",
|
||||
"winningTeam": "axis",
|
||||
"gameBattle": false,
|
||||
"team1Score": 1,
|
||||
"team2Score": 6,
|
||||
"isPresentAtEnd": true,
|
||||
"playerStats": {
|
||||
"kills": 1.0,
|
||||
"medalXp": 1510.0,
|
||||
"matchXp": 382.0,
|
||||
"averageSpeedDuringMatch": 0.0,
|
||||
"scoreXp": 100.0,
|
||||
"accuracy": 0.5625,
|
||||
"wallBangs": 0.0,
|
||||
"shotsLanded": 9.0,
|
||||
"score": 100.0,
|
||||
"totalXp": 1992.0,
|
||||
"headshots": 0.0,
|
||||
"assists": 0.0,
|
||||
"rank": 54.0,
|
||||
"scorePerMinute": 29.41176470588235,
|
||||
"distanceTraveled": 492.60062,
|
||||
"deaths": 6.0,
|
||||
"kdRatio": 0.16666666666666666,
|
||||
"shotsMissed": 7.0,
|
||||
"timePlayed": 204.0,
|
||||
"executions": 0.0,
|
||||
"suicides": 0.0,
|
||||
"seasonRank": 10.0,
|
||||
"nearmisses": 12.0,
|
||||
"percentTimeMoving": 0.0,
|
||||
"miscXp": 0.0,
|
||||
"longestStreak": 1.0,
|
||||
"damageDone": 392.0,
|
||||
"shotsFired": 16.0,
|
||||
"damageTaken": 600.0
|
||||
},
|
||||
"weaponStats": {
|
||||
".357": {
|
||||
"hits": 2.0,
|
||||
"kills": 0.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 2.0,
|
||||
"shots": 5.0,
|
||||
"startingWeaponXp": 44700.0,
|
||||
"deaths": 2.0,
|
||||
"xpEarned": 0.0
|
||||
},
|
||||
"MP5": {
|
||||
"hits": 0.0,
|
||||
"kills": 0.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 4.0,
|
||||
"shots": 0.0,
|
||||
"startingWeaponXp": 77500.0,
|
||||
"deaths": 1.0,
|
||||
"xpEarned": 0.0
|
||||
},
|
||||
"R9-0 Shotgun": {
|
||||
"hits": 3.0,
|
||||
"kills": 1.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 0.0,
|
||||
"shots": 5.0,
|
||||
"startingWeaponXp": 58000.0,
|
||||
"deaths": 0.0,
|
||||
"xpEarned": 180.0
|
||||
},
|
||||
"Grau 5.56": {
|
||||
"hits": 3.0,
|
||||
"kills": 0.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 3.0,
|
||||
"shots": 5.0,
|
||||
"startingWeaponXp": 99700.0,
|
||||
"deaths": 2.0,
|
||||
"xpEarned": 0.0
|
||||
}
|
||||
},
|
||||
"allPlayers": null,
|
||||
"Gunfight": false,
|
||||
"privateMatch": false
|
||||
}
|
113
examples/example_matches/match_19.json
Normal file
113
examples/example_matches/match_19.json
Normal file
@ -0,0 +1,113 @@
|
||||
{
|
||||
"utcStartSeconds": "GMT: Friday, October 13, 2023 07:09:25 AM",
|
||||
"utcEndSeconds": "GMT: Friday, October 13, 2023 07:14:17 AM",
|
||||
"map": "mp_shipment",
|
||||
"mode": "Gunfight",
|
||||
"matchID": "8150798539455925554",
|
||||
"duration": "4 Minutes 52 Seconds 0 Milliseconds",
|
||||
"playlistName": null,
|
||||
"version": 1,
|
||||
"gameType": "mp",
|
||||
"result": "win",
|
||||
"winningTeam": "allies",
|
||||
"gameBattle": false,
|
||||
"team1Score": 6,
|
||||
"team2Score": 4,
|
||||
"isPresentAtEnd": true,
|
||||
"playerStats": {
|
||||
"kills": 9.0,
|
||||
"medalXp": 1950.0,
|
||||
"matchXp": 785.0,
|
||||
"averageSpeedDuringMatch": 0.0,
|
||||
"scoreXp": 900.0,
|
||||
"accuracy": 0.27835051546391754,
|
||||
"wallBangs": 0.0,
|
||||
"shotsLanded": 27.0,
|
||||
"score": 900.0,
|
||||
"totalXp": 3635.0,
|
||||
"headshots": 1.0,
|
||||
"assists": 0.0,
|
||||
"rank": 54.0,
|
||||
"scorePerMinute": 162.65060240963857,
|
||||
"distanceTraveled": 1941.4109,
|
||||
"deaths": 5.0,
|
||||
"kdRatio": 1.8,
|
||||
"shotsMissed": 70.0,
|
||||
"timePlayed": 332.0,
|
||||
"executions": 0.0,
|
||||
"suicides": 0.0,
|
||||
"seasonRank": 10.0,
|
||||
"nearmisses": 57.0,
|
||||
"percentTimeMoving": 0.0,
|
||||
"miscXp": 0.0,
|
||||
"longestStreak": 4.0,
|
||||
"damageDone": 1007.0,
|
||||
"shotsFired": 97.0,
|
||||
"damageTaken": 731.0
|
||||
},
|
||||
"weaponStats": {
|
||||
"AS VAL": {
|
||||
"hits": 0.0,
|
||||
"kills": 0.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 4.0,
|
||||
"shots": 1.0,
|
||||
"startingWeaponXp": 68500.0,
|
||||
"deaths": 1.0,
|
||||
"xpEarned": 0.0
|
||||
},
|
||||
"1911": {
|
||||
"hits": 0.0,
|
||||
"kills": 0.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 6.0,
|
||||
"shots": 8.0,
|
||||
"startingWeaponXp": 33000.0,
|
||||
"deaths": 0.0,
|
||||
"xpEarned": 0.0
|
||||
},
|
||||
"molotov_mp": {
|
||||
"hits": 0.0,
|
||||
"kills": 0.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 5.0,
|
||||
"shots": 0.0,
|
||||
"startingWeaponXp": 0.0,
|
||||
"deaths": 0.0,
|
||||
"xpEarned": 0.0
|
||||
},
|
||||
"725": {
|
||||
"hits": 2.0,
|
||||
"kills": 2.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 2.0,
|
||||
"shots": 2.0,
|
||||
"startingWeaponXp": 66300.0,
|
||||
"deaths": 0.0,
|
||||
"xpEarned": 360.0
|
||||
},
|
||||
"MP5": {
|
||||
"hits": 9.0,
|
||||
"kills": 2.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 8.0,
|
||||
"shots": 19.0,
|
||||
"startingWeaponXp": 77500.0,
|
||||
"deaths": 0.0,
|
||||
"xpEarned": 360.0
|
||||
},
|
||||
"Holger-26": {
|
||||
"hits": 3.0,
|
||||
"kills": 1.0,
|
||||
"headshots": 1.0,
|
||||
"loadoutIndex": 0.0,
|
||||
"shots": 15.0,
|
||||
"startingWeaponXp": 77500.0,
|
||||
"deaths": 2.0,
|
||||
"xpEarned": 180.0
|
||||
}
|
||||
},
|
||||
"allPlayers": null,
|
||||
"Gunfight": false,
|
||||
"privateMatch": false
|
||||
}
|
103
examples/example_matches/match_2.json
Normal file
103
examples/example_matches/match_2.json
Normal file
@ -0,0 +1,103 @@
|
||||
{
|
||||
"utcStartSeconds": "GMT: Friday, October 13, 2023 09:01:13 AM",
|
||||
"utcEndSeconds": "GMT: Friday, October 13, 2023 09:06:49 AM",
|
||||
"map": "mp_m_stadium",
|
||||
"mode": "Gunfight",
|
||||
"matchID": "16756300293244951150",
|
||||
"duration": "5 Minutes 36 Seconds 0 Milliseconds",
|
||||
"playlistName": null,
|
||||
"version": 1,
|
||||
"gameType": "mp",
|
||||
"result": "win",
|
||||
"winningTeam": "allies",
|
||||
"gameBattle": false,
|
||||
"team1Score": 6,
|
||||
"team2Score": 2,
|
||||
"isPresentAtEnd": true,
|
||||
"playerStats": {
|
||||
"kills": 10.0,
|
||||
"medalXp": 2565.0,
|
||||
"matchXp": 1902.0,
|
||||
"averageSpeedDuringMatch": 0.0,
|
||||
"scoreXp": 1125.0,
|
||||
"accuracy": 0.17372881355932204,
|
||||
"wallBangs": 0.0,
|
||||
"shotsLanded": 41.0,
|
||||
"score": 1125.0,
|
||||
"totalXp": 5592.0,
|
||||
"headshots": 4.0,
|
||||
"assists": 2.0,
|
||||
"rank": 54.0,
|
||||
"scorePerMinute": 173.52185089974293,
|
||||
"distanceTraveled": 2300.2773,
|
||||
"deaths": 2.0,
|
||||
"kdRatio": 5.0,
|
||||
"shotsMissed": 195.0,
|
||||
"timePlayed": 389.0,
|
||||
"executions": 0.0,
|
||||
"suicides": 0.0,
|
||||
"seasonRank": 10.0,
|
||||
"nearmisses": 111.0,
|
||||
"percentTimeMoving": 0.0,
|
||||
"miscXp": 0.0,
|
||||
"longestStreak": 6.0,
|
||||
"damageDone": 1117.0,
|
||||
"shotsFired": 236.0,
|
||||
"damageTaken": 390.0
|
||||
},
|
||||
"weaponStats": {
|
||||
"Renetti": {
|
||||
"hits": 9.0,
|
||||
"kills": 2.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 0.0,
|
||||
"shots": 26.0,
|
||||
"startingWeaponXp": 54000.0,
|
||||
"deaths": 0.0,
|
||||
"xpEarned": 360.0
|
||||
},
|
||||
"1911": {
|
||||
"hits": 0.0,
|
||||
"kills": 0.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 6.0,
|
||||
"shots": 6.0,
|
||||
"startingWeaponXp": 33000.0,
|
||||
"deaths": 0.0,
|
||||
"xpEarned": 0.0
|
||||
},
|
||||
"MG34": {
|
||||
"hits": 6.0,
|
||||
"kills": 2.0,
|
||||
"headshots": 2.0,
|
||||
"loadoutIndex": 4.0,
|
||||
"shots": 42.0,
|
||||
"startingWeaponXp": 77500.0,
|
||||
"deaths": 0.0,
|
||||
"xpEarned": 360.0
|
||||
},
|
||||
"ISO": {
|
||||
"hits": 11.0,
|
||||
"kills": 1.0,
|
||||
"headshots": 1.0,
|
||||
"loadoutIndex": 2.0,
|
||||
"shots": 60.0,
|
||||
"startingWeaponXp": 72900.0,
|
||||
"deaths": 0.0,
|
||||
"xpEarned": 270.0
|
||||
},
|
||||
"Origin 12 Shotgun": {
|
||||
"hits": 2.0,
|
||||
"kills": 2.0,
|
||||
"headshots": 1.0,
|
||||
"loadoutIndex": 6.0,
|
||||
"shots": 3.0,
|
||||
"startingWeaponXp": 62100.0,
|
||||
"deaths": 0.0,
|
||||
"xpEarned": 360.0
|
||||
}
|
||||
},
|
||||
"allPlayers": null,
|
||||
"Gunfight": false,
|
||||
"privateMatch": false
|
||||
}
|
103
examples/example_matches/match_20.json
Normal file
103
examples/example_matches/match_20.json
Normal file
@ -0,0 +1,103 @@
|
||||
{
|
||||
"utcStartSeconds": "GMT: Friday, October 13, 2023 07:00:36 AM",
|
||||
"utcEndSeconds": "GMT: Friday, October 13, 2023 07:07:41 AM",
|
||||
"map": "mp_m_hill",
|
||||
"mode": "Gunfight",
|
||||
"matchID": "1031183506930466944",
|
||||
"duration": "7 Minutes 5 Seconds 0 Milliseconds",
|
||||
"playlistName": null,
|
||||
"version": 1,
|
||||
"gameType": "mp",
|
||||
"result": "win",
|
||||
"winningTeam": "allies",
|
||||
"gameBattle": false,
|
||||
"team1Score": 6,
|
||||
"team2Score": 4,
|
||||
"isPresentAtEnd": true,
|
||||
"playerStats": {
|
||||
"kills": 6.0,
|
||||
"medalXp": 1915.0,
|
||||
"matchXp": 1619.0,
|
||||
"averageSpeedDuringMatch": 78.74068,
|
||||
"scoreXp": 675.0,
|
||||
"accuracy": 0.11788617886178862,
|
||||
"wallBangs": 0.0,
|
||||
"shotsLanded": 29.0,
|
||||
"score": 675.0,
|
||||
"totalXp": 4209.0,
|
||||
"headshots": 4.0,
|
||||
"assists": 3.0,
|
||||
"rank": 54.0,
|
||||
"scorePerMinute": 84.90566037735849,
|
||||
"distanceTraveled": 4157.6,
|
||||
"deaths": 2.0,
|
||||
"kdRatio": 3.0,
|
||||
"shotsMissed": 217.0,
|
||||
"timePlayed": 477.0,
|
||||
"executions": 0.0,
|
||||
"suicides": 0.0,
|
||||
"seasonRank": 10.0,
|
||||
"nearmisses": 133.0,
|
||||
"percentTimeMoving": 87.5,
|
||||
"miscXp": 0.0,
|
||||
"longestStreak": 3.0,
|
||||
"damageDone": 840.0,
|
||||
"shotsFired": 246.0,
|
||||
"damageTaken": 481.0
|
||||
},
|
||||
"weaponStats": {
|
||||
"1911": {
|
||||
"hits": 0.0,
|
||||
"kills": 0.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 1.0,
|
||||
"shots": 6.0,
|
||||
"startingWeaponXp": 33000.0,
|
||||
"deaths": 0.0,
|
||||
"xpEarned": 0.0
|
||||
},
|
||||
"FR 5.56": {
|
||||
"hits": 3.0,
|
||||
"kills": 0.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 5.0,
|
||||
"shots": 36.0,
|
||||
"startingWeaponXp": 97100.0,
|
||||
"deaths": 1.0,
|
||||
"xpEarned": 45.0
|
||||
},
|
||||
"Crossbow": {
|
||||
"hits": 0.0,
|
||||
"kills": 0.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 3.0,
|
||||
"shots": 1.0,
|
||||
"startingWeaponXp": 48300.0,
|
||||
"deaths": 0.0,
|
||||
"xpEarned": 0.0
|
||||
},
|
||||
"MG34": {
|
||||
"hits": 8.0,
|
||||
"kills": 2.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 8.0,
|
||||
"shots": 29.0,
|
||||
"startingWeaponXp": 77500.0,
|
||||
"deaths": 0.0,
|
||||
"xpEarned": 360.0
|
||||
},
|
||||
"P90": {
|
||||
"hits": 10.0,
|
||||
"kills": 2.0,
|
||||
"headshots": 2.0,
|
||||
"loadoutIndex": 4.0,
|
||||
"shots": 142.0,
|
||||
"startingWeaponXp": 62100.0,
|
||||
"deaths": 0.0,
|
||||
"xpEarned": 360.0
|
||||
}
|
||||
},
|
||||
"allPlayers": null,
|
||||
"Gunfight": false,
|
||||
"privateMatch": false
|
||||
}
|
93
examples/example_matches/match_3.json
Normal file
93
examples/example_matches/match_3.json
Normal file
@ -0,0 +1,93 @@
|
||||
{
|
||||
"utcStartSeconds": "GMT: Friday, October 13, 2023 08:54:51 AM",
|
||||
"utcEndSeconds": "GMT: Friday, October 13, 2023 08:59:00 AM",
|
||||
"map": "mp_m_fork",
|
||||
"mode": "Gunfight",
|
||||
"matchID": "4426854641996609602",
|
||||
"duration": "4 Minutes 9 Seconds 0 Milliseconds",
|
||||
"playlistName": null,
|
||||
"version": 1,
|
||||
"gameType": "mp",
|
||||
"result": "loss",
|
||||
"winningTeam": "allies",
|
||||
"gameBattle": false,
|
||||
"team1Score": 6,
|
||||
"team2Score": 2,
|
||||
"isPresentAtEnd": true,
|
||||
"playerStats": {
|
||||
"kills": 5.0,
|
||||
"medalXp": 1635.0,
|
||||
"matchXp": 635.0,
|
||||
"averageSpeedDuringMatch": 0.0,
|
||||
"scoreXp": 500.0,
|
||||
"accuracy": 0.2,
|
||||
"wallBangs": 0.0,
|
||||
"shotsLanded": 19.0,
|
||||
"score": 500.0,
|
||||
"totalXp": 2770.0,
|
||||
"headshots": 1.0,
|
||||
"assists": 0.0,
|
||||
"rank": 54.0,
|
||||
"scorePerMinute": 101.69491525423729,
|
||||
"distanceTraveled": 844.77625,
|
||||
"deaths": 6.0,
|
||||
"kdRatio": 0.8333333333333334,
|
||||
"shotsMissed": 76.0,
|
||||
"timePlayed": 295.0,
|
||||
"executions": 0.0,
|
||||
"suicides": 0.0,
|
||||
"seasonRank": 10.0,
|
||||
"nearmisses": 52.0,
|
||||
"percentTimeMoving": 0.0,
|
||||
"miscXp": 0.0,
|
||||
"longestStreak": 2.0,
|
||||
"damageDone": 718.0,
|
||||
"shotsFired": 95.0,
|
||||
"damageTaken": 688.0
|
||||
},
|
||||
"weaponStats": {
|
||||
".50 GS": {
|
||||
"hits": 0.0,
|
||||
"kills": 0.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 2.0,
|
||||
"shots": 6.0,
|
||||
"startingWeaponXp": 46500.0,
|
||||
"deaths": 1.0,
|
||||
"xpEarned": 0.0
|
||||
},
|
||||
"FiNN LMG": {
|
||||
"hits": 8.0,
|
||||
"kills": 1.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 0.0,
|
||||
"shots": 53.0,
|
||||
"startingWeaponXp": 74584.0,
|
||||
"deaths": 1.0,
|
||||
"xpEarned": 180.0
|
||||
},
|
||||
"EBR-14": {
|
||||
"hits": 7.0,
|
||||
"kills": 3.0,
|
||||
"headshots": 1.0,
|
||||
"loadoutIndex": 3.0,
|
||||
"shots": 17.0,
|
||||
"startingWeaponXp": 70700.0,
|
||||
"deaths": 1.0,
|
||||
"xpEarned": 540.0
|
||||
},
|
||||
"FN Scar 17": {
|
||||
"hits": 2.0,
|
||||
"kills": 0.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 5.0,
|
||||
"shots": 12.0,
|
||||
"startingWeaponXp": 97100.0,
|
||||
"deaths": 1.0,
|
||||
"xpEarned": 0.0
|
||||
}
|
||||
},
|
||||
"allPlayers": null,
|
||||
"Gunfight": false,
|
||||
"privateMatch": false
|
||||
}
|
123
examples/example_matches/match_4.json
Normal file
123
examples/example_matches/match_4.json
Normal file
@ -0,0 +1,123 @@
|
||||
{
|
||||
"utcStartSeconds": "GMT: Friday, October 13, 2023 08:46:06 AM",
|
||||
"utcEndSeconds": "GMT: Friday, October 13, 2023 08:52:45 AM",
|
||||
"map": "mp_m_overunder",
|
||||
"mode": "Gunfight",
|
||||
"matchID": "13122840687922000264",
|
||||
"duration": "6 Minutes 39 Seconds 0 Milliseconds",
|
||||
"playlistName": null,
|
||||
"version": 1,
|
||||
"gameType": "mp",
|
||||
"result": "loss",
|
||||
"winningTeam": "allies",
|
||||
"gameBattle": false,
|
||||
"team1Score": 6,
|
||||
"team2Score": 4,
|
||||
"isPresentAtEnd": true,
|
||||
"playerStats": {
|
||||
"kills": 8.0,
|
||||
"medalXp": 2460.0,
|
||||
"matchXp": 1784.0,
|
||||
"averageSpeedDuringMatch": 0.0,
|
||||
"scoreXp": 850.0,
|
||||
"accuracy": 0.15625,
|
||||
"wallBangs": 0.0,
|
||||
"shotsLanded": 25.0,
|
||||
"score": 850.0,
|
||||
"totalXp": 5094.0,
|
||||
"headshots": 1.0,
|
||||
"assists": 1.0,
|
||||
"rank": 54.0,
|
||||
"scorePerMinute": 112.83185840707964,
|
||||
"distanceTraveled": 2697.319,
|
||||
"deaths": 6.0,
|
||||
"kdRatio": 1.3333333333333333,
|
||||
"shotsMissed": 135.0,
|
||||
"timePlayed": 452.0,
|
||||
"executions": 0.0,
|
||||
"suicides": 0.0,
|
||||
"seasonRank": 10.0,
|
||||
"nearmisses": 74.0,
|
||||
"percentTimeMoving": 0.0,
|
||||
"miscXp": 0.0,
|
||||
"longestStreak": 4.0,
|
||||
"damageDone": 1052.0,
|
||||
"shotsFired": 160.0,
|
||||
"damageTaken": 676.0
|
||||
},
|
||||
"weaponStats": {
|
||||
"1911": {
|
||||
"hits": 1.0,
|
||||
"kills": 0.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 5.0,
|
||||
"shots": 16.0,
|
||||
"startingWeaponXp": 33000.0,
|
||||
"deaths": 0.0,
|
||||
"xpEarned": 90.0
|
||||
},
|
||||
"SP-R 208": {
|
||||
"hits": 1.0,
|
||||
"kills": 1.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 8.0,
|
||||
"shots": 6.0,
|
||||
"startingWeaponXp": 72900.0,
|
||||
"deaths": 2.0,
|
||||
"xpEarned": 180.0
|
||||
},
|
||||
"M19": {
|
||||
"hits": 2.0,
|
||||
"kills": 1.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 1.0,
|
||||
"shots": 9.0,
|
||||
"startingWeaponXp": 33000.0,
|
||||
"deaths": 0.0,
|
||||
"xpEarned": 180.0
|
||||
},
|
||||
"Holger-26": {
|
||||
"hits": 6.0,
|
||||
"kills": 2.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 3.0,
|
||||
"shots": 16.0,
|
||||
"startingWeaponXp": 77500.0,
|
||||
"deaths": 0.0,
|
||||
"xpEarned": 360.0
|
||||
},
|
||||
"PP19 Bizon": {
|
||||
"hits": 4.0,
|
||||
"kills": 0.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 7.0,
|
||||
"shots": 12.0,
|
||||
"startingWeaponXp": 60000.0,
|
||||
"deaths": 1.0,
|
||||
"xpEarned": 0.0
|
||||
},
|
||||
"R9-0 Shotgun": {
|
||||
"hits": 1.0,
|
||||
"kills": 1.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 1.0,
|
||||
"shots": 2.0,
|
||||
"startingWeaponXp": 58000.0,
|
||||
"deaths": 0.0,
|
||||
"xpEarned": 180.0
|
||||
},
|
||||
"frag_grenade_mp": {
|
||||
"hits": 0.0,
|
||||
"kills": 0.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 4.0,
|
||||
"shots": 0.0,
|
||||
"startingWeaponXp": 0.0,
|
||||
"deaths": 0.0,
|
||||
"xpEarned": 0.0
|
||||
}
|
||||
},
|
||||
"allPlayers": null,
|
||||
"Gunfight": false,
|
||||
"privateMatch": false
|
||||
}
|
113
examples/example_matches/match_5.json
Normal file
113
examples/example_matches/match_5.json
Normal file
@ -0,0 +1,113 @@
|
||||
{
|
||||
"utcStartSeconds": "GMT: Friday, October 13, 2023 08:38:24 AM",
|
||||
"utcEndSeconds": "GMT: Friday, October 13, 2023 08:43:46 AM",
|
||||
"map": "mp_m_train",
|
||||
"mode": "Gunfight",
|
||||
"matchID": "5904974789808129470",
|
||||
"duration": "5 Minutes 22 Seconds 0 Milliseconds",
|
||||
"playlistName": null,
|
||||
"version": 1,
|
||||
"gameType": "mp",
|
||||
"result": "loss",
|
||||
"winningTeam": "axis",
|
||||
"gameBattle": false,
|
||||
"team1Score": 4,
|
||||
"team2Score": 6,
|
||||
"isPresentAtEnd": true,
|
||||
"playerStats": {
|
||||
"kills": 5.0,
|
||||
"medalXp": 2390.0,
|
||||
"matchXp": 1230.0,
|
||||
"averageSpeedDuringMatch": 0.0,
|
||||
"scoreXp": 625.0,
|
||||
"accuracy": 0.3283582089552239,
|
||||
"wallBangs": 0.0,
|
||||
"shotsLanded": 22.0,
|
||||
"score": 625.0,
|
||||
"totalXp": 4245.0,
|
||||
"headshots": 0.0,
|
||||
"assists": 2.0,
|
||||
"rank": 54.0,
|
||||
"scorePerMinute": 104.74860335195531,
|
||||
"distanceTraveled": 684.75854,
|
||||
"deaths": 7.0,
|
||||
"kdRatio": 0.7142857142857143,
|
||||
"shotsMissed": 45.0,
|
||||
"timePlayed": 358.0,
|
||||
"executions": 0.0,
|
||||
"suicides": 0.0,
|
||||
"seasonRank": 10.0,
|
||||
"nearmisses": 35.0,
|
||||
"percentTimeMoving": 0.0,
|
||||
"miscXp": 0.0,
|
||||
"longestStreak": 3.0,
|
||||
"damageDone": 865.0,
|
||||
"shotsFired": 67.0,
|
||||
"damageTaken": 791.0
|
||||
},
|
||||
"weaponStats": {
|
||||
"X16": {
|
||||
"hits": 3.0,
|
||||
"kills": 0.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 2.0,
|
||||
"shots": 4.0,
|
||||
"startingWeaponXp": 34600.0,
|
||||
"deaths": 1.0,
|
||||
"xpEarned": 135.0
|
||||
},
|
||||
"SA87": {
|
||||
"hits": 2.0,
|
||||
"kills": 0.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 5.0,
|
||||
"shots": 6.0,
|
||||
"startingWeaponXp": 75200.0,
|
||||
"deaths": 1.0,
|
||||
"xpEarned": 90.0
|
||||
},
|
||||
"MP5": {
|
||||
"hits": 7.0,
|
||||
"kills": 1.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 7.0,
|
||||
"shots": 33.0,
|
||||
"startingWeaponXp": 77500.0,
|
||||
"deaths": 2.0,
|
||||
"xpEarned": 180.0
|
||||
},
|
||||
"M19": {
|
||||
"hits": 1.0,
|
||||
"kills": 0.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 0.0,
|
||||
"shots": 6.0,
|
||||
"startingWeaponXp": 33000.0,
|
||||
"deaths": 0.0,
|
||||
"xpEarned": 0.0
|
||||
},
|
||||
"Origin 12 Shotgun": {
|
||||
"hits": 3.0,
|
||||
"kills": 0.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 0.0,
|
||||
"shots": 4.0,
|
||||
"startingWeaponXp": 62100.0,
|
||||
"deaths": 2.0,
|
||||
"xpEarned": 0.0
|
||||
},
|
||||
"Rytec AMR": {
|
||||
"hits": 1.0,
|
||||
"kills": 1.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 4.0,
|
||||
"shots": 3.0,
|
||||
"startingWeaponXp": 33000.0,
|
||||
"deaths": 0.0,
|
||||
"xpEarned": 180.0
|
||||
}
|
||||
},
|
||||
"allPlayers": null,
|
||||
"Gunfight": false,
|
||||
"privateMatch": false
|
||||
}
|
93
examples/example_matches/match_6.json
Normal file
93
examples/example_matches/match_6.json
Normal file
@ -0,0 +1,93 @@
|
||||
{
|
||||
"utcStartSeconds": "GMT: Friday, October 13, 2023 08:32:14 AM",
|
||||
"utcEndSeconds": "GMT: Friday, October 13, 2023 08:35:12 AM",
|
||||
"map": "mp_m_trench",
|
||||
"mode": "Gunfight",
|
||||
"matchID": "6975546085129714208",
|
||||
"duration": "2 Minutes 58 Seconds 0 Milliseconds",
|
||||
"playlistName": null,
|
||||
"version": 1,
|
||||
"gameType": "mp",
|
||||
"result": "loss",
|
||||
"winningTeam": "allies",
|
||||
"gameBattle": false,
|
||||
"team1Score": 6,
|
||||
"team2Score": 0,
|
||||
"isPresentAtEnd": true,
|
||||
"playerStats": {
|
||||
"kills": 2.0,
|
||||
"medalXp": 1590.0,
|
||||
"matchXp": 560.0,
|
||||
"averageSpeedDuringMatch": 0.0,
|
||||
"scoreXp": 200.0,
|
||||
"accuracy": 0.14655172413793102,
|
||||
"wallBangs": 0.0,
|
||||
"shotsLanded": 17.0,
|
||||
"score": 200.0,
|
||||
"totalXp": 2350.0,
|
||||
"headshots": 2.0,
|
||||
"assists": 0.0,
|
||||
"rank": 54.0,
|
||||
"scorePerMinute": 55.29953917050691,
|
||||
"distanceTraveled": 753.2467,
|
||||
"deaths": 6.0,
|
||||
"kdRatio": 0.3333333333333333,
|
||||
"shotsMissed": 99.0,
|
||||
"timePlayed": 217.0,
|
||||
"executions": 0.0,
|
||||
"suicides": 0.0,
|
||||
"seasonRank": 10.0,
|
||||
"nearmisses": 66.0,
|
||||
"percentTimeMoving": 0.0,
|
||||
"miscXp": 0.0,
|
||||
"longestStreak": 1.0,
|
||||
"damageDone": 550.0,
|
||||
"shotsFired": 116.0,
|
||||
"damageTaken": 600.0
|
||||
},
|
||||
"weaponStats": {
|
||||
"Bruen Mk9": {
|
||||
"hits": 5.0,
|
||||
"kills": 1.0,
|
||||
"headshots": 1.0,
|
||||
"loadoutIndex": 2.0,
|
||||
"shots": 36.0,
|
||||
"startingWeaponXp": 82200.0,
|
||||
"deaths": 2.0,
|
||||
"xpEarned": 180.0
|
||||
},
|
||||
"VLK Rogue": {
|
||||
"hits": 1.0,
|
||||
"kills": 0.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 1.0,
|
||||
"shots": 1.0,
|
||||
"startingWeaponXp": 64200.0,
|
||||
"deaths": 1.0,
|
||||
"xpEarned": 0.0
|
||||
},
|
||||
"M13": {
|
||||
"hits": 6.0,
|
||||
"kills": 0.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 0.0,
|
||||
"shots": 58.0,
|
||||
"startingWeaponXp": 107700.0,
|
||||
"deaths": 2.0,
|
||||
"xpEarned": 0.0
|
||||
},
|
||||
"M19": {
|
||||
"hits": 5.0,
|
||||
"kills": 1.0,
|
||||
"headshots": 1.0,
|
||||
"loadoutIndex": 1.0,
|
||||
"shots": 21.0,
|
||||
"startingWeaponXp": 33000.0,
|
||||
"deaths": 1.0,
|
||||
"xpEarned": 180.0
|
||||
}
|
||||
},
|
||||
"allPlayers": null,
|
||||
"Gunfight": false,
|
||||
"privateMatch": false
|
||||
}
|
123
examples/example_matches/match_7.json
Normal file
123
examples/example_matches/match_7.json
Normal file
@ -0,0 +1,123 @@
|
||||
{
|
||||
"utcStartSeconds": "GMT: Friday, October 13, 2023 08:24:20 AM",
|
||||
"utcEndSeconds": "GMT: Friday, October 13, 2023 08:30:11 AM",
|
||||
"map": "mp_m_pine",
|
||||
"mode": "Gunfight",
|
||||
"matchID": "15185728700852222154",
|
||||
"duration": "5 Minutes 51 Seconds 0 Milliseconds",
|
||||
"playlistName": null,
|
||||
"version": 1,
|
||||
"gameType": "mp",
|
||||
"result": "win",
|
||||
"winningTeam": "axis",
|
||||
"gameBattle": false,
|
||||
"team1Score": 3,
|
||||
"team2Score": 6,
|
||||
"isPresentAtEnd": true,
|
||||
"playerStats": {
|
||||
"kills": 9.0,
|
||||
"medalXp": 2505.0,
|
||||
"matchXp": 1906.0,
|
||||
"averageSpeedDuringMatch": 128.94987,
|
||||
"scoreXp": 950.0,
|
||||
"accuracy": 0.12811387900355872,
|
||||
"wallBangs": 0.0,
|
||||
"shotsLanded": 36.0,
|
||||
"score": 950.0,
|
||||
"totalXp": 5361.0,
|
||||
"headshots": 2.0,
|
||||
"assists": 1.0,
|
||||
"rank": 54.0,
|
||||
"scorePerMinute": 146.15384615384613,
|
||||
"distanceTraveled": 1319.4282,
|
||||
"deaths": 4.0,
|
||||
"kdRatio": 2.25,
|
||||
"shotsMissed": 245.0,
|
||||
"timePlayed": 390.0,
|
||||
"executions": 0.0,
|
||||
"suicides": 0.0,
|
||||
"seasonRank": 10.0,
|
||||
"nearmisses": 137.0,
|
||||
"percentTimeMoving": 88.23529,
|
||||
"miscXp": 0.0,
|
||||
"longestStreak": 4.0,
|
||||
"damageDone": 1182.0,
|
||||
"shotsFired": 281.0,
|
||||
"damageTaken": 732.0
|
||||
},
|
||||
"weaponStats": {
|
||||
"Renetti": {
|
||||
"hits": 7.0,
|
||||
"kills": 2.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 2.0,
|
||||
"shots": 67.0,
|
||||
"startingWeaponXp": 54000.0,
|
||||
"deaths": 1.0,
|
||||
"xpEarned": 360.0
|
||||
},
|
||||
"M91": {
|
||||
"hits": 3.0,
|
||||
"kills": 1.0,
|
||||
"headshots": 1.0,
|
||||
"loadoutIndex": 6.0,
|
||||
"shots": 34.0,
|
||||
"startingWeaponXp": 79800.0,
|
||||
"deaths": 0.0,
|
||||
"xpEarned": 180.0
|
||||
},
|
||||
".50 GS": {
|
||||
"hits": 2.0,
|
||||
"kills": 0.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 7.0,
|
||||
"shots": 9.0,
|
||||
"startingWeaponXp": 46500.0,
|
||||
"deaths": 0.0,
|
||||
"xpEarned": 0.0
|
||||
},
|
||||
"Striker 45": {
|
||||
"hits": 4.0,
|
||||
"kills": 1.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 3.0,
|
||||
"shots": 29.0,
|
||||
"startingWeaponXp": 72900.0,
|
||||
"deaths": 0.0,
|
||||
"xpEarned": 180.0
|
||||
},
|
||||
"Model 680": {
|
||||
"hits": 4.0,
|
||||
"kills": 2.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 7.0,
|
||||
"shots": 8.0,
|
||||
"startingWeaponXp": 62100.0,
|
||||
"deaths": 0.0,
|
||||
"xpEarned": 360.0
|
||||
},
|
||||
"frag_grenade_mp": {
|
||||
"hits": 0.0,
|
||||
"kills": 0.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 1.0,
|
||||
"shots": 0.0,
|
||||
"startingWeaponXp": 0.0,
|
||||
"deaths": 0.0,
|
||||
"xpEarned": 0.0
|
||||
},
|
||||
"Grau 5.56": {
|
||||
"hits": 1.0,
|
||||
"kills": 0.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 1.0,
|
||||
"shots": 30.0,
|
||||
"startingWeaponXp": 99700.0,
|
||||
"deaths": 1.0,
|
||||
"xpEarned": 0.0
|
||||
}
|
||||
},
|
||||
"allPlayers": null,
|
||||
"Gunfight": false,
|
||||
"privateMatch": false
|
||||
}
|
113
examples/example_matches/match_8.json
Normal file
113
examples/example_matches/match_8.json
Normal file
@ -0,0 +1,113 @@
|
||||
{
|
||||
"utcStartSeconds": "GMT: Friday, October 13, 2023 08:19:01 AM",
|
||||
"utcEndSeconds": "GMT: Friday, October 13, 2023 08:22:19 AM",
|
||||
"map": "mp_m_showers",
|
||||
"mode": "Gunfight",
|
||||
"matchID": "12106462555916355611",
|
||||
"duration": "3 Minutes 18 Seconds 0 Milliseconds",
|
||||
"playlistName": null,
|
||||
"version": 1,
|
||||
"gameType": "mp",
|
||||
"result": "win",
|
||||
"winningTeam": "axis",
|
||||
"gameBattle": false,
|
||||
"team1Score": 1,
|
||||
"team2Score": 6,
|
||||
"isPresentAtEnd": true,
|
||||
"playerStats": {
|
||||
"kills": 7.0,
|
||||
"medalXp": 1895.0,
|
||||
"matchXp": 894.0,
|
||||
"averageSpeedDuringMatch": 0.0,
|
||||
"scoreXp": 850.0,
|
||||
"accuracy": 0.2692307692307692,
|
||||
"wallBangs": 0.0,
|
||||
"shotsLanded": 21.0,
|
||||
"score": 850.0,
|
||||
"totalXp": 3639.0,
|
||||
"headshots": 0.0,
|
||||
"assists": 2.0,
|
||||
"rank": 54.0,
|
||||
"scorePerMinute": 218.88412017167383,
|
||||
"distanceTraveled": 231.95163,
|
||||
"deaths": 3.0,
|
||||
"kdRatio": 2.3333333333333335,
|
||||
"shotsMissed": 57.0,
|
||||
"timePlayed": 233.0,
|
||||
"executions": 0.0,
|
||||
"suicides": 0.0,
|
||||
"seasonRank": 10.0,
|
||||
"nearmisses": 59.0,
|
||||
"percentTimeMoving": 0.0,
|
||||
"miscXp": 0.0,
|
||||
"longestStreak": 4.0,
|
||||
"damageDone": 772.0,
|
||||
"shotsFired": 78.0,
|
||||
"damageTaken": 300.0
|
||||
},
|
||||
"weaponStats": {
|
||||
"M4A1": {
|
||||
"hits": 1.0,
|
||||
"kills": 1.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 5.0,
|
||||
"shots": 2.0,
|
||||
"startingWeaponXp": 113200.0,
|
||||
"deaths": 0.0,
|
||||
"xpEarned": 180.0
|
||||
},
|
||||
"Renetti": {
|
||||
"hits": 3.0,
|
||||
"kills": 1.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 6.0,
|
||||
"shots": 14.0,
|
||||
"startingWeaponXp": 54000.0,
|
||||
"deaths": 1.0,
|
||||
"xpEarned": 180.0
|
||||
},
|
||||
"semtex_mp": {
|
||||
"hits": 0.0,
|
||||
"kills": 0.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 6.0,
|
||||
"shots": 0.0,
|
||||
"startingWeaponXp": 0.0,
|
||||
"deaths": 0.0,
|
||||
"xpEarned": 0.0
|
||||
},
|
||||
"1911": {
|
||||
"hits": 0.0,
|
||||
"kills": 0.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 4.0,
|
||||
"shots": 0.0,
|
||||
"startingWeaponXp": 33000.0,
|
||||
"deaths": 1.0,
|
||||
"xpEarned": 0.0
|
||||
},
|
||||
"Dragunov": {
|
||||
"hits": 1.0,
|
||||
"kills": 0.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 1.0,
|
||||
"shots": 2.0,
|
||||
"startingWeaponXp": 36200.0,
|
||||
"deaths": 1.0,
|
||||
"xpEarned": 0.0
|
||||
},
|
||||
"Holger-26": {
|
||||
"hits": 4.0,
|
||||
"kills": 1.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 2.0,
|
||||
"shots": 22.0,
|
||||
"startingWeaponXp": 77500.0,
|
||||
"deaths": 0.0,
|
||||
"xpEarned": 180.0
|
||||
}
|
||||
},
|
||||
"allPlayers": null,
|
||||
"Gunfight": false,
|
||||
"privateMatch": false
|
||||
}
|
103
examples/example_matches/match_9.json
Normal file
103
examples/example_matches/match_9.json
Normal file
@ -0,0 +1,103 @@
|
||||
{
|
||||
"utcStartSeconds": "GMT: Friday, October 13, 2023 08:14:12 AM",
|
||||
"utcEndSeconds": "GMT: Friday, October 13, 2023 08:17:03 AM",
|
||||
"map": "mp_m_cage",
|
||||
"mode": "Gunfight",
|
||||
"matchID": "14763503065632813798",
|
||||
"duration": "2 Minutes 51 Seconds 0 Milliseconds",
|
||||
"playlistName": null,
|
||||
"version": 1,
|
||||
"gameType": "mp",
|
||||
"result": "win",
|
||||
"winningTeam": "allies",
|
||||
"gameBattle": false,
|
||||
"team1Score": 6,
|
||||
"team2Score": 1,
|
||||
"isPresentAtEnd": true,
|
||||
"playerStats": {
|
||||
"kills": 9.0,
|
||||
"medalXp": 2035.0,
|
||||
"matchXp": 597.0,
|
||||
"averageSpeedDuringMatch": 0.0,
|
||||
"scoreXp": 975.0,
|
||||
"accuracy": 0.3684210526315789,
|
||||
"wallBangs": 0.0,
|
||||
"shotsLanded": 28.0,
|
||||
"score": 975.0,
|
||||
"totalXp": 3607.0,
|
||||
"headshots": 1.0,
|
||||
"assists": 2.0,
|
||||
"rank": 54.0,
|
||||
"scorePerMinute": 277.2511848341232,
|
||||
"distanceTraveled": 149.00363,
|
||||
"deaths": 3.0,
|
||||
"kdRatio": 3.0,
|
||||
"shotsMissed": 48.0,
|
||||
"timePlayed": 211.0,
|
||||
"executions": 0.0,
|
||||
"suicides": 0.0,
|
||||
"seasonRank": 10.0,
|
||||
"nearmisses": 42.0,
|
||||
"percentTimeMoving": 0.0,
|
||||
"miscXp": 0.0,
|
||||
"longestStreak": 8.0,
|
||||
"damageDone": 904.0,
|
||||
"shotsFired": 76.0,
|
||||
"damageTaken": 459.0
|
||||
},
|
||||
"weaponStats": {
|
||||
"1911": {
|
||||
"hits": 5.0,
|
||||
"kills": 2.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 2.0,
|
||||
"shots": 16.0,
|
||||
"startingWeaponXp": 33000.0,
|
||||
"deaths": 0.0,
|
||||
"xpEarned": 360.0
|
||||
},
|
||||
"VLK Rogue": {
|
||||
"hits": 1.0,
|
||||
"kills": 0.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 3.0,
|
||||
"shots": 2.0,
|
||||
"startingWeaponXp": 64200.0,
|
||||
"deaths": 0.0,
|
||||
"xpEarned": 45.0
|
||||
},
|
||||
"X16": {
|
||||
"hits": 3.0,
|
||||
"kills": 1.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 3.0,
|
||||
"shots": 8.0,
|
||||
"startingWeaponXp": 34600.0,
|
||||
"deaths": 0.0,
|
||||
"xpEarned": 180.0
|
||||
},
|
||||
"AUG": {
|
||||
"hits": 6.0,
|
||||
"kills": 1.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 0.0,
|
||||
"shots": 23.0,
|
||||
"startingWeaponXp": 77500.0,
|
||||
"deaths": 2.0,
|
||||
"xpEarned": 180.0
|
||||
},
|
||||
"Kilo 141": {
|
||||
"hits": 6.0,
|
||||
"kills": 1.0,
|
||||
"headshots": 0.0,
|
||||
"loadoutIndex": 5.0,
|
||||
"shots": 11.0,
|
||||
"startingWeaponXp": 107700.0,
|
||||
"deaths": 1.0,
|
||||
"xpEarned": 270.0
|
||||
}
|
||||
},
|
||||
"allPlayers": null,
|
||||
"Gunfight": false,
|
||||
"privateMatch": false
|
||||
}
|
File diff suppressed because it is too large
Load Diff
204
get_cod_stats.py
204
get_cod_stats.py
@ -1,8 +1,10 @@
|
||||
import sys
|
||||
import json
|
||||
import os
|
||||
import argparse
|
||||
from cod_api import API, platforms
|
||||
import asyncio
|
||||
import datetime
|
||||
|
||||
# Prevent Async error from showing
|
||||
if os.name == 'nt':
|
||||
@ -251,8 +253,15 @@ replacements = {
|
||||
# Initiating the API class
|
||||
api = API()
|
||||
COOKIE_FILE = 'cookie.txt'
|
||||
DIR_NAME = 'stats'
|
||||
MATCH_DIR_NAME = 'matches'
|
||||
|
||||
def get_and_save_data(player_name=None):
|
||||
def save_to_file(data, filename, dir_name='stats'):
|
||||
"""Utility function to save data to a JSON file."""
|
||||
with open(os.path.join(dir_name, filename), 'w') as json_file:
|
||||
json.dump(data, json_file, indent=4)
|
||||
|
||||
def get_and_save_data(player_name=None, all_stats=False, season_loot=False, identities=False, maps=False):
|
||||
# Create the stats directory if it doesn't exist
|
||||
DIR_NAME = 'stats'
|
||||
if not os.path.exists(DIR_NAME):
|
||||
@ -273,26 +282,42 @@ def get_and_save_data(player_name=None):
|
||||
|
||||
# Login with sso token
|
||||
api.login(api_key)
|
||||
|
||||
|
||||
# Retrieve data from API
|
||||
player_stats = api.ModernWarfare.fullData(platforms.Activision, player_name)
|
||||
match_info = api.ModernWarfare.combatHistory(platforms.Activision, player_name)
|
||||
season_loot = api.ModernWarfare.seasonLoot(platforms.Activision, player_name)
|
||||
map_list = api.ModernWarfare.mapList(platforms.Activision)
|
||||
identities = api.Me.loggedInIdentities()
|
||||
|
||||
# Save results to a JSON file inside the stats directory
|
||||
with open(os.path.join(DIR_NAME, 'stats.json'), 'w') as json_file:
|
||||
json.dump(player_stats, json_file, indent=4)
|
||||
with open(os.path.join(DIR_NAME, 'match_info.json'), 'w') as json_file:
|
||||
json.dump(match_info, json_file, indent=4)
|
||||
with open(os.path.join(DIR_NAME, 'season_loot.json'), 'w') as json_file:
|
||||
json.dump(season_loot, json_file, indent=4)
|
||||
with open(os.path.join(DIR_NAME, 'map_list.json'), 'w') as json_file:
|
||||
json.dump(map_list, json_file, indent=4)
|
||||
with open(os.path.join(DIR_NAME, 'identities.json'), 'w') as json_file:
|
||||
json.dump(identities, json_file, indent=4)
|
||||
# First, determine if any specific optional arguments were given
|
||||
if not (all_stats or season_loot or identities or maps):
|
||||
# If no specific optional arguments are given, then default behavior:
|
||||
player_stats = api.ModernWarfare.fullData(platforms.Activision, player_name)
|
||||
match_info = api.ModernWarfare.combatHistory(platforms.Activision, player_name)
|
||||
save_to_file(player_stats, 'stats.json')
|
||||
save_to_file(match_info, 'match_info.json')
|
||||
elif all_stats:
|
||||
# If the all_stats argument is given:
|
||||
player_stats = api.ModernWarfare.fullData(platforms.Activision, player_name)
|
||||
match_info = api.ModernWarfare.combatHistory(platforms.Activision, player_name)
|
||||
player_stats = api.ModernWarfare.fullData(platforms.Activision, player_name)
|
||||
match_info = api.ModernWarfare.combatHistory(platforms.Activision, player_name)
|
||||
season_loot_data = api.ModernWarfare.seasonLoot(platforms.Activision, player_name)
|
||||
map_list = api.ModernWarfare.mapList(platforms.Activision)
|
||||
identities_data = api.Me.loggedInIdentities()
|
||||
save_to_file(player_stats, 'stats.json')
|
||||
save_to_file(match_info, 'match_info.json')
|
||||
save_to_file(season_loot_data, 'season_loot.json')
|
||||
save_to_file(map_list, 'map_list.json')
|
||||
save_to_file(identities_data, 'identities.json')
|
||||
else:
|
||||
# For other specific optional arguments:
|
||||
if season_loot:
|
||||
season_loot_data = api.ModernWarfare.seasonLoot(platforms.Activision, player_name)
|
||||
save_to_file(season_loot_data, 'season_loot.json')
|
||||
if identities:
|
||||
identities_data = api.Me.loggedInIdentities()
|
||||
save_to_file(identities_data, 'identities.json')
|
||||
if maps:
|
||||
map_list = api.ModernWarfare.mapList(platforms.Activision)
|
||||
save_to_file(map_list, 'map_list.json')
|
||||
|
||||
# Save results to a JSON file inside the stats directory
|
||||
def recursive_key_replace(obj, replacements):
|
||||
if isinstance(obj, dict):
|
||||
new_obj = {}
|
||||
@ -331,24 +356,114 @@ def sort_data(data):
|
||||
data[key] = sort_data(value)
|
||||
return data
|
||||
|
||||
def replace_time_and_duration_recursive(data):
|
||||
"""
|
||||
Recursively replace epoch times for specific keys in a nested dictionary or list.
|
||||
"""
|
||||
if isinstance(data, list):
|
||||
for item in data:
|
||||
replace_time_and_duration_recursive(item)
|
||||
|
||||
elif isinstance(data, dict):
|
||||
for key, value in data.items():
|
||||
if key == "utcStartSeconds":
|
||||
data[key] = epoch_to_human_readable(value)
|
||||
# For EST conversion:
|
||||
# data[key] = epoch_to_human_readable(value, "EST")
|
||||
|
||||
elif key == "utcEndSeconds":
|
||||
data[key] = epoch_to_human_readable(value)
|
||||
# For EST conversion:
|
||||
# data[key] = epoch_to_human_readable(value, "EST")
|
||||
|
||||
elif key == "duration":
|
||||
data[key] = convert_duration(value)
|
||||
|
||||
else:
|
||||
replace_time_and_duration_recursive(value)
|
||||
|
||||
def epoch_to_human_readable(epoch_timestamp, timezone='GMT'):
|
||||
if isinstance(epoch_timestamp, str):
|
||||
return epoch_timestamp # Already converted
|
||||
|
||||
dt_object = datetime.datetime.utcfromtimestamp(epoch_timestamp)
|
||||
if timezone == 'GMT':
|
||||
date_str = dt_object.strftime("GMT: %A, %B %d, %Y %I:%M:%S %p")
|
||||
elif timezone == 'EST':
|
||||
dt_object -= datetime.timedelta(hours=4) # Using 4 hours for EST conversion instead of 5?
|
||||
date_str = dt_object.strftime("EST: %A, %B %d, %Y %I:%M:%S %p")
|
||||
else:
|
||||
raise ValueError("Unsupported timezone.")
|
||||
return date_str
|
||||
|
||||
def convert_duration(milliseconds):
|
||||
if isinstance(milliseconds, str) and "Minutes" in milliseconds:
|
||||
return milliseconds # Already converted
|
||||
|
||||
seconds, milliseconds = divmod(milliseconds, 1000)
|
||||
minutes, seconds = divmod(seconds, 60)
|
||||
return f"{minutes} Minutes {seconds} Seconds {milliseconds} Milliseconds"
|
||||
|
||||
def beautify_data():
|
||||
file_path = "stats.json"
|
||||
file_path = (os.path.join(DIR_NAME, 'stats.json'))
|
||||
with open(file_path, 'r') as file:
|
||||
data = json.load(file)
|
||||
data = recursive_key_replace(data, replacements)
|
||||
data = sort_data(data)
|
||||
with open(file_path, 'w') as file:
|
||||
json.dump(data, file, indent=4)
|
||||
print(f"Keys sorted and replaced in {file_path}!")
|
||||
print(f"Keys sorted and replaced in {file_path}.")
|
||||
|
||||
def beautify_match_data():
|
||||
file_path = "match_info.json"
|
||||
file_path = (os.path.join(DIR_NAME, 'match_info.json'))
|
||||
with open(file_path, 'r') as file:
|
||||
data = json.load(file)
|
||||
replace_time_and_duration_recursive(data)
|
||||
data = recursive_key_replace(data, replacements)
|
||||
with open(file_path, 'w') as file:
|
||||
json.dump(data, file, indent=4)
|
||||
print(f"Keys replaced in {file_path}!")
|
||||
print(f"Keys replaced in {file_path}.")
|
||||
|
||||
def split_matches_into_files():
|
||||
"""
|
||||
Split the matches in match_info.json into separate files.
|
||||
"""
|
||||
MATCHES_DIR = os.path.join(DIR_NAME, MATCH_DIR_NAME)
|
||||
|
||||
# Create matches directory if it doesn't exist
|
||||
if not os.path.exists(MATCHES_DIR):
|
||||
os.makedirs(MATCHES_DIR)
|
||||
|
||||
# Load the match_info data
|
||||
with open(os.path.join(DIR_NAME, 'match_info.json'), 'r') as file:
|
||||
data = json.load(file)
|
||||
matches = data.get('data', {}).get('matches', []) # Correct the key to access matches
|
||||
|
||||
# Check if data needs cleaning
|
||||
sample_match = matches[0] if matches else {}
|
||||
if (isinstance(sample_match.get("utcStartSeconds"), int) or
|
||||
isinstance(sample_match.get("utcEndSeconds"), int) or
|
||||
isinstance(sample_match.get("duration"), int)):
|
||||
|
||||
print("Cleaning match data...")
|
||||
replace_time_and_duration_recursive(data)
|
||||
|
||||
# Save the cleaned data back to match_info.json
|
||||
with open(os.path.join(DIR_NAME, 'match_info.json'), 'w') as file:
|
||||
json.dump(data, file, indent=4)
|
||||
|
||||
# Split and save each match into a separate file
|
||||
for idx, match in enumerate(matches):
|
||||
# Create a copy of the match to ensure we don't modify the original data
|
||||
match_copy = dict(match)
|
||||
# Remove player subkey to avoid the cascading data, if you want to exclude more, add them here
|
||||
match_copy.pop('player', None)
|
||||
|
||||
file_name = f"match_{idx + 1}.json"
|
||||
with open(os.path.join(MATCHES_DIR, file_name), 'w') as match_file:
|
||||
json.dump(match_copy, match_file, indent=4)
|
||||
|
||||
print(f"Matches split into {len(matches)} separate files in {MATCHES_DIR}.")
|
||||
|
||||
def main():
|
||||
# Define the block of quote text to display in the help command
|
||||
@ -360,21 +475,48 @@ def main():
|
||||
- Enter the value when prompted
|
||||
"""
|
||||
|
||||
parser = argparse.ArgumentParser(description="COD Data Tool", epilog=help_text, formatter_class=argparse.RawDescriptionHelpFormatter)
|
||||
parser = argparse.ArgumentParser(description="Detailed Modern Warfare (2019) Statistics Tool", epilog=help_text, formatter_class=argparse.RawDescriptionHelpFormatter)
|
||||
|
||||
# Add arguments for your commands
|
||||
parser.add_argument("--replace-data", action="store_true", help="Beautify the data in stats.json")
|
||||
parser.add_argument("--replace-match-data", action="store_true", help="Beautify the match data in match_info.json")
|
||||
parser.add_argument("--player-name", type=str, help="Player's username (with #1234567)")
|
||||
# Group related arguments
|
||||
group_data = parser.add_argument_group("Data Fetching Options")
|
||||
group_cleaning = parser.add_argument_group("Data Cleaning Options")
|
||||
|
||||
# Add arguments for Data Fetching Options
|
||||
group_data.add_argument("-p", "--player_name", type=str, help="Player's username (with #1234567)")
|
||||
group_data.add_argument("-a", "--all_stats", action="store_true", help="Fetch all the different types of stats data")
|
||||
group_data.add_argument("-sl", "--season_loot", action="store_true", help="Fetch only the season loot data")
|
||||
group_data.add_argument("-i", "--identities", action="store_true", help="Fetch only the logged-in identities data")
|
||||
group_data.add_argument("-m", "--maps", action="store_true", help="Fetch only the map list data")
|
||||
|
||||
# Add arguments for Cleaning Options
|
||||
group_cleaning.add_argument("-c", "--clean", action="store_true", help="Beautify all data")
|
||||
group_cleaning.add_argument("-sm", "--split_matches", action="store_true", help="Split the matches into separate JSON files within the 'matches' subfolder")
|
||||
group_cleaning.add_argument("-csd", "--clean_stats_data", action="store_true", help="Beautify the data and convert to human-readable strings in stats.json")
|
||||
group_cleaning.add_argument("-cmd", "--clean_match_data", action="store_true", help="Beautify the match data and convert to human-readable strings in match_info.json")
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
if args.replace_data:
|
||||
# Custom error handling
|
||||
# try:
|
||||
# args = parser.parse_args()
|
||||
# except SystemExit:
|
||||
# # Check if 'player_name' is in sys.argv, if not, raise exception
|
||||
# if '--player_name' not in sys.argv and '-p' not in sys.argv:
|
||||
# print('You must specify a player name!')
|
||||
# # Otherwise, re-raise the error or print the default error message.
|
||||
# sys.exit(1)
|
||||
|
||||
if args.split_matches:
|
||||
split_matches_into_files()
|
||||
elif args.clean_stats_data:
|
||||
beautify_data()
|
||||
elif args.clean_match_data:
|
||||
beautify_match_data()
|
||||
elif args.clean:
|
||||
beautify_data()
|
||||
elif args.replace_match_data:
|
||||
beautify_match_data()
|
||||
else:
|
||||
get_and_save_data(args.player_name)
|
||||
get_and_save_data(args.player_name, args.all_stats, args.season_loot, args.identities, args.maps)
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
Loading…
Reference in New Issue
Block a user