From b3a39f1f6c6b34e761dd4c09685e88d7cd23672a Mon Sep 17 00:00:00 2001 From: SXP-Simon Date: Fri, 16 Jan 2026 23:43:46 +0800 Subject: [PATCH] =?UTF-8?q?fix(reports):=20=E4=BF=AE=E5=A4=8D=20generators?= =?UTF-8?q?.py=20=E4=B8=AD=20=5Fget=5Fuser=5Favatar=20=E7=9A=84=20TypeErro?= =?UTF-8?q?r=E3=80=82=E5=B0=86=20aiohttp=20=E8=AF=B7=E6=B1=82=E9=87=8D?= =?UTF-8?q?=E6=9E=84=E4=B8=BA=E5=BC=82=E6=AD=A5=E4=B8=8A=E4=B8=8B=E6=96=87?= =?UTF-8?q?=E6=A8=A1=E5=BC=8F=EF=BC=8C=E7=A1=AE=E4=BF=9D=20response.read()?= =?UTF-8?q?=20=E8=A2=AB=E6=AD=A3=E7=A1=AE=E7=AD=89=E5=BE=85=EF=BC=8C?= =?UTF-8?q?=E5=B9=B6=E5=A2=9E=E5=8A=A0=E4=BA=86=E7=BD=91=E7=BB=9C=E8=BF=9E?= =?UTF-8?q?=E6=8E=A5=E5=A4=B1=E8=B4=A5=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/reports/generators.py | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/reports/generators.py b/src/reports/generators.py index 8fd7531..986ddfb 100644 --- a/src/reports/generators.py +++ b/src/reports/generators.py @@ -302,12 +302,17 @@ class ReportGenerator: try: avatar_url = f"https://q4.qlogo.cn/headimg_dl?dst_uin={user_id}&spec=100" async with aiohttp.ClientSession() as client: - response = await client.get(avatar_url) - response.raise_for_status() - avatar_data = await response.read() - # 转换为base64编码 - avatar_base64 = base64.b64encode(avatar_data).decode("utf-8") - return f"data:image/jpeg;base64,{avatar_base64}" + async with client.get(avatar_url) as response: + response.raise_for_status() + avatar_data = await response.read() + + if not isinstance(avatar_data, bytes): + logger.warning(f"获取到的头像数据类型异常: {type(avatar_data)}") + return None + + # 转换为base64编码 + avatar_base64 = base64.b64encode(avatar_data).decode("utf-8") + return f"data:image/jpeg;base64,{avatar_base64}" except Exception as e: logger.error(f"获取用户头像失败 {user_id}: {e}") return None