fix(reports): 修复 generators.py 中 _get_user_avatar 的 TypeError。将 aiohttp 请求重构为异步上下文模式,确保 response.read() 被正确等待,并增加了网络连接失败处理

This commit is contained in:
SXP-Simon
2026-01-16 23:43:46 +08:00
parent c54d001f2a
commit b3a39f1f6c
+11 -6
View File
@@ -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