From e4b93d64182405fa3f6963515a3e60ad1fc1e97d Mon Sep 17 00:00:00 2001 From: KimigaiiWuyi <444835641@qq.com> Date: Sun, 19 Nov 2023 04:04:22 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20=E4=BF=AE=E5=A4=8D=E9=83=A8?= =?UTF-8?q?=E5=88=86=E6=83=85=E5=86=B5=E4=B8=8B=E7=BA=B3=E7=BB=B4=E8=8E=B1?= =?UTF-8?q?=E7=89=B9=E8=83=8C=E6=99=AF=E5=A4=B1=E6=95=88,=20=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D`mr`=E5=BC=82=E5=B8=B8=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../genshinuid_resin/draw_resin_card.py | 23 ++++++++++++++++--- .../utils/resource/generate_char_card.py | 2 +- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/GenshinUID/genshinuid_resin/draw_resin_card.py b/GenshinUID/genshinuid_resin/draw_resin_card.py index 84f0bbbe..4fd79304 100644 --- a/GenshinUID/genshinuid_resin/draw_resin_card.py +++ b/GenshinUID/genshinuid_resin/draw_resin_card.py @@ -1,5 +1,6 @@ import json import asyncio +from io import BytesIO from pathlib import Path from typing import Union @@ -7,7 +8,13 @@ from PIL import Image, ImageDraw from gsuid_core.logger import logger from gsuid_core.utils.api.mys.models import Expedition from gsuid_core.utils.database.models import GsBind, GsUser -from gsuid_core.utils.error_reply import UID_HINT, get_error_img +from gsuid_core.utils.error_reply import ( + UID_HINT, + get_error, + get_error_img, + draw_error_img, + get_error_type, +) from ..utils.mys_api import mys_api from ..utils.api.mys.models import FakeResin @@ -160,6 +167,16 @@ async def draw_bar( return bar +async def _get_error_img(retcode: int): + error_img = await get_error_img(retcode) + if isinstance(error_img, str): + error_message = get_error(retcode) + error_type = get_error_type(retcode) + error_img = await draw_error_img(retcode, error_message, error_type) + bio = BytesIO(error_img) + return Image.open(bio) + + async def draw_resin_img(uid: str) -> Image.Image: img = Image.open(TEXT_PATH / 'bg.png') @@ -167,7 +184,7 @@ async def draw_resin_img(uid: str) -> Image.Image: if use_widget and int(str(uid)[0]) <= 5: _daily_data = await mys_api.get_widget_resin_data(uid) if isinstance(_daily_data, int): - return Image.open(await get_error_img(_daily_data)) + return await _get_error_img(_daily_data) daily_data = transform_fake_resin(_daily_data) data_res = '当前数据源:小组件 (可能存在数据不准、数据缺失)' warn = '数据未知...' @@ -176,7 +193,7 @@ async def draw_resin_img(uid: str) -> Image.Image: else: daily_data = await mys_api.get_daily_data(uid) if isinstance(daily_data, int): - return Image.open(await get_error_img(daily_data)) + return await _get_error_img(daily_data) data_res = '当前数据源:战绩' warn = '未知情况' diff --git a/GenshinUID/utils/resource/generate_char_card.py b/GenshinUID/utils/resource/generate_char_card.py index afc99b03..557599ee 100644 --- a/GenshinUID/utils/resource/generate_char_card.py +++ b/GenshinUID/utils/resource/generate_char_card.py @@ -62,5 +62,5 @@ async def create_all_char_card(): for char in CHAR_PATH.iterdir(): char_id = char.stem path = CHAR_CARD_PATH / f'{char_id}.png' - if not path.exists(): + if not path.exists() or char_id == '10000087': await create_single_char_card(char_id)