Check is response is OK from retrieve the picture if not then default

This commit is contained in:
Rodrigo Agundez 2025-02-08 09:49:16 +09:00
parent 14398ab628
commit 546ef6ab42

View File

@ -261,15 +261,18 @@ class OAuthManager:
} }
async with aiohttp.ClientSession() as session: async with aiohttp.ClientSession() as session:
async with session.get(picture_url, **get_kwargs) as resp: async with session.get(picture_url, **get_kwargs) as resp:
picture = await resp.read() if resp.ok:
base64_encoded_picture = base64.b64encode( picture = await resp.read()
picture base64_encoded_picture = base64.b64encode(
).decode("utf-8") picture
guessed_mime_type = mimetypes.guess_type(picture_url)[0] ).decode("utf-8")
if guessed_mime_type is None: guessed_mime_type = mimetypes.guess_type(picture_url)[0]
# assume JPG, browsers are tolerant enough of image formats if guessed_mime_type is None:
guessed_mime_type = "image/jpeg" # assume JPG, browsers are tolerant enough of image formats
picture_url = f"data:{guessed_mime_type};base64,{base64_encoded_picture}" guessed_mime_type = "image/jpeg"
picture_url = f"data:{guessed_mime_type};base64,{base64_encoded_picture}"
else:
picture_url = "/user.png"
except Exception as e: except Exception as e:
log.error( log.error(
f"Error downloading profile image '{picture_url}': {e}" f"Error downloading profile image '{picture_url}': {e}"