diff options
| author | ilotterytea <iltsu@alright.party> | 2025-04-29 02:06:11 +0500 |
|---|---|---|
| committer | ilotterytea <iltsu@alright.party> | 2025-04-29 02:06:11 +0500 |
| commit | 93c02436fb0b7afffb6c62547385757b1a1b57f8 (patch) | |
| tree | b60ccd0a1df6076f97c3898d952ec3262dff34d7 /public/account | |
| parent | c95dfa9e3dd18c0835626ec29b814cc2b11b7fae (diff) | |
feat: download user's profile banner
Diffstat (limited to 'public/account')
| -rw-r--r-- | public/account/index.php | 24 | ||||
| -rw-r--r-- | public/account/login/twitch.php | 19 |
2 files changed, 40 insertions, 3 deletions
diff --git a/public/account/index.php b/public/account/index.php index 2edb39a..a216eea 100644 --- a/public/account/index.php +++ b/public/account/index.php @@ -16,7 +16,7 @@ if (!isset($_SESSION["user_id"], $_SESSION["user_name"])) { if ($_SERVER['REQUEST_METHOD'] == "POST") { $db = new PDO(DB_URL, DB_USER, DB_PASS); - $username = str_safe($_POST["username"], ACCOUNT_USERNAME_MAX_LENGTH); + $username = str_safe($_POST["username"] ?? "", ACCOUNT_USERNAME_MAX_LENGTH); if (!empty($username) && $username != $_SESSION["user_name"]) { if (!preg_match(ACCOUNT_USERNAME_REGEX, $username)) { @@ -43,7 +43,20 @@ if ($_SERVER['REQUEST_METHOD'] == "POST") { "../static/userdata/avatars/" . $_SESSION["user_id"], ACCOUNT_PFP_MAX_SIZE[0], ACCOUNT_PFP_MAX_SIZE[1], - false + false, + true + ); + } + + if (isset($_FILES["banner"])) { + $banner = $_FILES["banner"]; + resize_image( + $banner["tmp_name"], + "../static/userdata/banners/" . $_SESSION["user_id"], + ACCOUNT_BANNER_MAX_SIZE[0], + ACCOUNT_BANNER_MAX_SIZE[1], + false, + true ); } @@ -76,7 +89,12 @@ if ($_SERVER['REQUEST_METHOD'] == "POST") { <h3>Profile picture</h3> <img src="/static/userdata/avatars/<?php echo $_SESSION["user_id"] ?>" id="pfp" width="64" height="64"> - <input type="file" name="pfp" id="pfp"> + <input type="file" name="pfp"> + + <h3>Profile banner</h3> + <img src="/static/userdata/banners/<?php echo $_SESSION["user_id"] ?>" id="banner" width="192" + height="108"> + <input type="file" name="banner"> <h3>Username</h3> <input type="text" name="username" id="username" value="<?php echo $_SESSION["user_name"] ?>"> diff --git a/public/account/login/twitch.php b/public/account/login/twitch.php index ec10583..1c72bc3 100644 --- a/public/account/login/twitch.php +++ b/public/account/login/twitch.php @@ -139,4 +139,23 @@ if (!is_file("$path/$user_id")) { fclose($fp); } +// downloading profile banner +$path = "../../static/userdata/banners"; + +if (!is_dir($path)) { + mkdir($path, 0777, true); +} + +if (!is_file("$path/$user_id")) { + $fp = fopen("$path/$user_id", "wb"); + $request = curl_init(); + curl_setopt($request, CURLOPT_URL, $twitch_user["offline_image_url"]); + curl_setopt($request, CURLOPT_FILE, $fp); + curl_setopt($request, CURLOPT_HEADER, 0); + + curl_exec($request); + curl_close($request); + fclose($fp); +} + header("Location: /account");
\ No newline at end of file |
