From: Chris Fulljames Date: Sun, 9 Feb 2025 19:31:53 +0000 (-0500) Subject: Use jpeg for profile pictures X-Git-Url: https://littlesong.place/gitweb/?a=commitdiff_plain;h=00bd17eee1ee3cbdac87a62549488c75a3c74b5e;p=littlesongplace.git Use jpeg for profile pictures --- diff --git a/main.py b/main.py index fbd61fc..d777b48 100644 --- a/main.py +++ b/main.py @@ -183,10 +183,14 @@ def edit_profile(): get_db().commit() if request.files["pfp"]: - pfp_path = get_user_images_path(session["userid"]) / "pfp.png" + pfp_path = get_user_images_path(session["userid"]) / "pfp.jpg" try: with Image.open(request.files["pfp"]) as im: + # Drop alpha channel + if im.mode in ("RGBA", "P"): + im = im.convert("RGB") + target_size = 256 # Square (same width/height) # Resize if im.width >= im.height: @@ -218,7 +222,7 @@ def edit_profile(): @app.get("/pfp/") def pfp(userid): - return send_from_directory(DATA_DIR / "images" / str(userid), "pfp.png") + return send_from_directory(DATA_DIR / "images" / str(userid), "pfp.jpg") @app.get("/edit-song") def edit_song(): diff --git a/test/test_offline.py b/test/test_offline.py index 34fd7d8..539f124 100644 --- a/test/test_offline.py +++ b/test/test_offline.py @@ -217,7 +217,7 @@ def test_get_pfp(client): response = client.get("/pfp/1") assert response.status_code == 200 - assert response.mimetype == "image/png" + assert response.mimetype == "image/jpeg" # Can't check image file, since site has modified it def test_get_pfp_no_file(client): diff --git a/todo.txt b/todo.txt index 4aa7a75..16eded9 100644 --- a/todo.txt +++ b/todo.txt @@ -1,7 +1,7 @@ NOW +- Apply user colors to songs in lists outside profile SOON -- Apply user colors to songs in lists outside profile - Player minimize button - Shuffle all - AJAX pages so songs can play during navigation