From c5a0aee73af586539c552146931d8491f3c56212 Mon Sep 17 00:00:00 2001 From: Thijs Stobbelaar Date: Thu, 21 Sep 2023 09:19:12 +0200 Subject: [PATCH] first push --- .gitignore | 1 + .htaccess | 3 ++ README.md | 50 +++++++++++++++++++- clan_stats.php | 60 +++++++++++++++++++++++ includes/footer.php | 3 ++ includes/navigation.php | 7 +++ includes/ratelimiter.php | 41 ++++++++++++++++ includes/styles.css | 100 +++++++++++++++++++++++++++++++++++++++ index.php | 30 ++++++++++++ media/discordlogo.png | Bin 0 -> 31426 bytes phpinfo.php | 3 ++ user_stats.php | 97 +++++++++++++++++++++++++++++++++++++ 12 files changed, 394 insertions(+), 1 deletion(-) create mode 100644 .gitignore create mode 100644 .htaccess create mode 100644 clan_stats.php create mode 100644 includes/footer.php create mode 100644 includes/navigation.php create mode 100644 includes/ratelimiter.php create mode 100644 includes/styles.css create mode 100644 index.php create mode 100644 media/discordlogo.png create mode 100644 phpinfo.php create mode 100644 user_stats.php diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..64334d7 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/config/* diff --git a/.htaccess b/.htaccess new file mode 100644 index 0000000..6fadb24 --- /dev/null +++ b/.htaccess @@ -0,0 +1,3 @@ + + deny from all + \ No newline at end of file diff --git a/README.md b/README.md index e5b0fb3..36ef709 100644 --- a/README.md +++ b/README.md @@ -1 +1,49 @@ -# pubg \ No newline at end of file +\`\`\`markdown +# DTCH - PUBG Clan User Stats + +This project displays the user statistics for members of the DTCH PUBG Clan. + +## Features + +1. Display lifetime stats for a specific game mode (solo, duo, squad). +2. Select a player from the DTCH clan and view their stats. +3. Display the PUBG API rate limit headers. + +## Prerequisites + +- PHP 7.4 or higher +- cURL extension for PHP + +## Installation + +1. Clone this repository: + \`\`\`bash + git clone [repository-url] + \`\`\` + +2. Navigate to the project directory: + \`\`\`bash + cd [project-directory] + \`\`\` + +3. Update the `config/config.php` file with the appropriate API key and clan members. + +4. Host the project on a PHP server (like Apache). + +5. Access the `user_stats.php` in your browser to view the stats. + +## Usage + +1. Select a game mode to view stats (solo, duo, squad). +2. Choose a clan member to view their specific stats. +3. The rate limit headers for the PUBG API are displayed at the top. + +## Notes + +- Ensure that the API key is kept confidential and not exposed to the public. +- The project comes with a rate limiter (`ratelimiter.php`), which can be included to restrict the frequency of page access. + +## License + +This project is open-source. Feel free to modify and distribute as per your needs. +\`\`\` diff --git a/clan_stats.php b/clan_stats.php new file mode 100644 index 0000000..3c5db12 --- /dev/null +++ b/clan_stats.php @@ -0,0 +1,60 @@ + + + + + + + + + + + DTCH - PUBG Clan - Clan Stats + + + + + + +
+
+

Clan Stats

+ "; + echo "AttributeValue"; + foreach ($clan['data']['attributes'] as $key => $value) { + echo "" . htmlspecialchars($key) . "" . htmlspecialchars($value) . ""; + } + echo ""; + } else { + echo "

No clan attributes available

"; + } + + + ?> +
+
+ + + + + diff --git a/includes/footer.php b/includes/footer.php new file mode 100644 index 0000000..6c20c21 --- /dev/null +++ b/includes/footer.php @@ -0,0 +1,3 @@ + diff --git a/includes/navigation.php b/includes/navigation.php new file mode 100644 index 0000000..6e22e4d --- /dev/null +++ b/includes/navigation.php @@ -0,0 +1,7 @@ + diff --git a/includes/ratelimiter.php b/includes/ratelimiter.php new file mode 100644 index 0000000..eb83635 --- /dev/null +++ b/includes/ratelimiter.php @@ -0,0 +1,41 @@ + $timestamp) { + if ($now - $timestamp > $allowed_time) { + unset($_SESSION['access_times'][$key]); + } +} + + +if (count($_SESSION['access_times']) > $allowed_refreshes) { + die(' + + + + + + RustAGHH + + +

RUSTAAAGGHHHH je mag de pagina niet vaker dan ' . $allowed_refreshes . 'x per ' . $allowed_time . ' seconde refreshen. Over een paar seconde word je weet terug geleid

+ + +'); +} + + +?> diff --git a/includes/styles.css b/includes/styles.css new file mode 100644 index 0000000..bf47810 --- /dev/null +++ b/includes/styles.css @@ -0,0 +1,100 @@ +/* Reset some default styles */ +body, h1, h2, p, ul, li, a { + margin: 0; + padding: 0; + text-decoration: none; +} + +body { + font-family: Arial, sans-serif; + background-color: black; + color: white; +} + +nav { + background-color: #333; +} + +nav ul { + list-style-type: none; + padding: 0; +} + +nav li { + display: inline-block; + margin-right: 10px; +} + +nav li:last-child { + margin-right: 0; +} + +nav a { + color: white; + padding: 10px 15px; + display: block; +} + +nav a:hover { + background-color: #555; +} + +header, main, footer { + max-width: 800px; + margin: 20px auto; + padding: 10px 20px; + border: 1px solid white; +} + +header h1, section h2 { + border-bottom: 1px solid white; + margin-bottom: 10px; + padding-bottom: 5px; +} + +footer { + text-align: center; +} + +/* Responsive Styles */ +@media (max-width: 600px) { + nav li { + display: block; + margin-right: 0; + } +} + +table { + width: 100%; + border-collapse: collapse; + margin-top: 20px; +} + +table, th, td { + border: 1px solid white; +} + +th, td { + padding: 10px; + text-align: left; +} + +th { + background-color: #555; +} + +tr:hover { + background-color: #444; +} + +.discord-logo { + width: 50px; /* Reduced from 50px to 30px */ + height: auto; + margin-top: 10px; + cursor: pointer; + transition: opacity 0.3s; +} + +.discord-logo:hover { + opacity: 0.8; +} \ No newline at end of file diff --git a/index.php b/index.php new file mode 100644 index 0000000..6437b69 --- /dev/null +++ b/index.php @@ -0,0 +1,30 @@ + + + + + + + DTCH - PUBG Clan + + + + + +
+

Welcome to DTCH - PUBG Clan

+
+ +
+
+

Welcome to DTCH - PUBG Clan

+

Join us on our Discord:

+ + + +
+
+ + + + + diff --git a/media/discordlogo.png b/media/discordlogo.png new file mode 100644 index 0000000000000000000000000000000000000000..526669be45b8b66185e0e8a34f8bdae652cfbca7 GIT binary patch literal 31426 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 \ No newline at end of file diff --git a/user_stats.php b/user_stats.php new file mode 100644 index 0000000..7354b4b --- /dev/null +++ b/user_stats.php @@ -0,0 +1,97 @@ + + + + + + + + + + + DTCH - PUBG Clan - User Stats + + + + + + +
+
+

User Stats

+ + + + +
"; + +// Buttons for each player +echo "
"; +foreach ($clanmembers as $player) { + echo ""; +} +echo "

"; + +$selected_player = $_POST['selected_player'] ?? $clanmembers[0]; + +// Retrieve user IDs +$players_url = "https://api.pubg.com/shards/steam/players?filter[playerNames]=$selected_player"; +$ch = curl_init(); +curl_setopt($ch, CURLOPT_URL, $players_url); +curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); +curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); +$players_response = curl_exec($ch); +curl_close($ch); +$players_data = json_decode($players_response, true); + +if (isset($players_data['data'])) { + $player = $players_data['data'][0]; + $player_id = $player['id']; + $player_name = $player['attributes']['name']; + + // Retrieve lifetime stats + $lifetime_url = "https://api.pubg.com/shards/steam/players/$player_id/seasons/lifetime?filter[gamepad]=false"; + $ch = curl_init(); + curl_setopt($ch, CURLOPT_URL, $lifetime_url); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); + curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); + $lifetime_response = curl_exec($ch); + curl_close($ch); + $lifetime_data = json_decode($lifetime_response, true); + + if (isset($lifetime_data['data']['attributes']['gameModeStats'][$selected_mode])) { + $stats = $lifetime_data['data']['attributes']['gameModeStats'][$selected_mode]; + echo "

" . ucfirst($selected_mode) . " Lifetime Stats for $player_name

"; + echo ""; + echo ""; + foreach ($stats as $stat_name => $stat_value) { + echo ""; + } + echo "
Stat NameValue
$stat_name$stat_value

"; + } +} else { + echo "No player data available."; +} +?> +
+
+ + + + +