diff --git a/latestmatches.php b/latestmatches.php index bebccf0..be2bd21 100644 --- a/latestmatches.php +++ b/latestmatches.php @@ -9,10 +9,10 @@ $ogDescription = "Dive into the detailed match stats of DTCH Clan in PUBG. Explo - + ?>
@@ -20,18 +20,18 @@ $ogDescription = "Dive into the detailed match stats of DTCH Clan in PUBG. Explo "; - foreach ($players_matches as $player_data) { - if (isset($player_data['playername'])) { - $player_name = $player_data['playername']; - echo ""; - } + foreach ($players['clanMembers'] as $player) { + + echo ""; + } echo "
"; - $selected_player = $_GET['selected_player'] ?? $players_matches[0]['playername']; + $selected_player = $_GET['selected_player'] ?? $players[0]; echo "
@@ -57,32 +57,30 @@ $ogDescription = "Dive into the detailed match stats of DTCH Clan in PUBG. Explo "Tiger_Main" => "Taego" ); // Display the player's match stats - foreach ($players_matches as $player_data) { - if (isset($player_data['playername']) && $player_data['playername'] === $selected_player) { - - echo "

Recent Matches for $selected_player

"; - echo ""; - echo ""; - foreach ($player_data['player_matches'] as $match) { - if (isset($_GET['filter_by_match_type'])) { - if ($_GET['filter_by_match_type'] !== 'all' && $match['matchType'] !== $_GET['filter_by_match_type']) { - continue; - } + echo "

Recent Matches for $selected_player

"; + echo "
Match DateGame ModeMatch TypeMapKillsDamage DealtTime Survivedwin Place
"; + echo ""; + foreach ($players_matches as $match) { + if ($match['stats']['name'] === $selected_player) { + if (isset($_GET['filter_by_match_type'])) { + if ($_GET['filter_by_match_type'] !== 'all' && $match['matchType'] !== $_GET['filter_by_match_type']) { + continue; } - $date = new DateTime($match['createdAt']); - $date->modify('+1 hours'); - $formattedDate = $date->format('m-d H:i:s'); + } + $date = new DateTime($match['createdAt']); + $date->modify('+1 hours'); + $formattedDate = $date->format('m-d H:i:s'); - $matchType = $match['matchType']; - $gameMode = $match['gameMode']; - $mapName = isset($mapNames[$match['mapName']]) ? $mapNames[$match['mapName']] : $match['mapName']; - $kills = $match['stats']['kills']; - $damage = number_format($match['stats']['damageDealt'], 0, '.', ''); - $timeSurvived = $match['stats']['timeSurvived']; - $winPlace = $match['stats']['winPlace']; - echo " + $matchType = $match['matchType']; + $gameMode = $match['gameMode']; + $mapName = isset($mapNames[$match['mapName']]) ? $mapNames[$match['mapName']] : $match['mapName']; + $kills = $match['stats']['kills']; + $damage = number_format($match['stats']['damageDealt'], 0, '.', ''); + $timeSurvived = $match['stats']['timeSurvived']; + $winPlace = $match['stats']['winPlace']; + echo " @@ -93,11 +91,13 @@ $ogDescription = "Dive into the detailed match stats of DTCH Clan in PUBG. Explo "; - } - echo "
Match DateGame ModeMatch TypeMapKillsDamage DealtTime Survivedwin Place
" . $formattedDate . " " . $gameMode . " " . $matchType . "" . $winPlace . "

"; + + } + } + echo "
"; ?>
diff --git a/update/get_matches.ps1 b/update/get_matches.ps1 index 376ab26..5430119 100644 --- a/update/get_matches.ps1 +++ b/update/get_matches.ps1 @@ -12,7 +12,7 @@ new-lock -by "get_matches" # Read the content of the file as a single string $fileContent = Get-Content -Path "$scriptroot/../config/config.php" -Raw - +$players = (Get-Content -Path "$scriptroot/../config/clanmembers.json" | ConvertFrom-Json).clanmembers # Use regex to match the apiKey value if ($fileContent -match "\`$apiKey\s*=\s*\'([^\']+)\'") { $apiKey = $matches[1] @@ -34,10 +34,11 @@ foreach ($player in $player_data) { $playermatches = @() foreach ($match in $lastMatches) { Write-Host "Getting match for $($player.attributes.name) match: $match " - if(Test-Path "$scriptroot/../data/matches/$match.json"){ + if (Test-Path "$scriptroot/../data/matches/$match.json") { write-output "Getting $match from cache" $stats = get-content "$scriptroot/../data/matches/$match.json" | convertfrom-json - }else{ + } + else { $stats = Invoke-RestMethod -Uri "https://api.pubg.com/shards/steam/matches/$match" -Method GET -Headers $headers $stats | ConvertTo-Json -Depth 100 | Out-File "$scriptroot/../data/matches/$match.json" } @@ -66,8 +67,8 @@ foreach ($player in $player_data) { if (test-path "$scriptroot/../data/player_matches.json") { $old_player_data = get-content "$scriptroot/../data/player_matches.json" | convertfrom-json -Depth 100 - $new_ids = ($player_matches.player_matches | where-object {$_.stats.winplace -eq 1}).id - $old_ids = ($old_player_data.player_matches | where-object {$_.stats.winplace -eq 1}).id + $new_ids = ($player_matches.player_matches | where-object { $_.stats.winplace -eq 1 }).id + $old_ids = ($old_player_data.player_matches | where-object { $_.stats.winplace -eq 1 }).id $new_win_matches = ((Compare-Object -ReferenceObject $old_ids -DifferenceObject $new_ids) | Where-Object { $_.SideIndicator -eq '=>' }).InputObject | Select-Object -Unique $new_win_matches = $old_player_data.new_win_matches + $new_win_matches | Select-Object -Unique $player_matches += [PSCustomObject]@{ @@ -76,8 +77,6 @@ if (test-path "$scriptroot/../data/player_matches.json") { } - - $currentDateTime = Get-Date # Get current timezone @@ -92,5 +91,36 @@ $playermatches += [PSCustomObject]@{ $player_matches | convertto-json -Depth 100 | out-file "$scriptroot/../data/player_matches.json" +write-output 'Cleaning matches' + +$matchfiles = Get-ChildItem "$scriptroot/../data/matches" -Filter *.json +$player_matches_object = @() +foreach ($file in $matchfiles) { + $filecontent = get-content $file | convertfrom-json + $matchfiledate = $filecontent.data.attributes.createdAt + if ($matchfiledate -lt (get-date).AddMonths(-1)) { + write-output "archiving $matchfiledate" + Move-Item -Path $file -Destination "$scriptroot/../data/matches/archive" + } + else { + $result = ($filecontent.included | where-object { $_.type -eq 'participant' } | Where-Object { $players -contains $_.attributes.stats.name }) + $filecontent.data.id + $result.count + $player_matches_cached = ($filecontent.included | where-object { $_.type -eq 'participant' } | Where-Object { $players -contains $_.attributes.stats.name }).attributes.stats + if ($null -ne $player_matches_cached) { + $player_matches_object += [PSCustomObject]@{ + matchType = $filecontent.data.attributes.matchType + gameMode = $filecontent.data.attributes.gameMode + createdAt = $filecontent.data.attributes.createdAt + mapName = $filecontent.data.attributes.mapName + id = $filecontent.data.id + stats = $player_matches_cached + } + } + write-output "NEW $matchfiledate" + } +} +$player_matches_object | convertto-json -Depth 100 | out-file "$scriptroot/../data/cached_matches.json" + remove-lock Stop-Transcript \ No newline at end of file