From b14eaeea03177b01128b6193b45c5b4b17249151 Mon Sep 17 00:00:00 2001 From: KimigaiiWuyi <444835641@qq.com> Date: Thu, 14 Mar 2024 04:33:04 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=8E=A8=20=E5=85=81=E8=AE=B8`=E6=8A=BD?= =?UTF-8?q?=E5=8D=A1=E8=AE=B0=E5=BD=95`=E7=BB=98=E5=88=B6=E6=97=A7?= =?UTF-8?q?=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../genshinuid_gachalog/draw_gachalogs.py | 27 ++++++++++++++----- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/GenshinUID/genshinuid_gachalog/draw_gachalogs.py b/GenshinUID/genshinuid_gachalog/draw_gachalogs.py index fa725b7e..a62dc3b2 100644 --- a/GenshinUID/genshinuid_gachalog/draw_gachalogs.py +++ b/GenshinUID/genshinuid_gachalog/draw_gachalogs.py @@ -146,7 +146,7 @@ async def draw_gachalogs_img(uid: str, ev: Event) -> Union[bytes, str]: # 数据初始化 total_data = {} - y_count = 0 + your_gacha_type_list = [] for i in all_gacha_type_name: total_data[i] = { 'total': 0, # 五星总数 @@ -165,14 +165,16 @@ async def draw_gachalogs_img(uid: str, ev: Event) -> Union[bytes, str]: 'long_gacha_data': {'time': 0, 'num': 0}, } # 拿到数据列表 - if i not in gacha_data['data']: - return '抽卡记录数据已变更, 请执行一次`刷新抽卡记录`以刷新数据' + if i in gacha_data['data'] and gacha_data['data'][i]: + your_gacha_type_list.append(i) + else: + gacha_data[f'{CHANGE_MAP[i]}_gacha_num'] = 0 + continue data_list = gacha_data['data'][i] # if data_list == []: # continue - y_count += 1 # 初始化开关 is_not_first = False @@ -270,6 +272,10 @@ async def draw_gachalogs_img(uid: str, ev: Event) -> Union[bytes, str]: # 计算抽卡类型 # 如果抽卡总数小于40 + if f'{CHANGE_MAP[i]}_gacha_num' not in gacha_data: + gacha_data[f'{CHANGE_MAP[i]}_gacha_num'] = len( + gacha_data['data'][i] + ) if gacha_data[f'{CHANGE_MAP[i]}_gacha_num'] <= 40: total_data[i]['type'] = '佛系型' # 如果长时抽卡总数占据了总抽卡数的70% @@ -321,7 +327,14 @@ async def draw_gachalogs_img(uid: str, ev: Event) -> Union[bytes, str]: avatar_title = Image.open(TEXT_PATH / 'avatar_title.png') img = await get_color_bg( - 950, 530 + y_count * 300 + normal_y + char_y + weapon_y + new_y + mix_y + 950, + 530 + + len(your_gacha_type_list) * 300 + + normal_y + + char_y + + weapon_y + + new_y + + mix_y, ) img.paste(avatar_title, (0, 0), avatar_title) img.paste(char_pic, (318, 83), char_pic) @@ -332,7 +345,7 @@ async def draw_gachalogs_img(uid: str, ev: Event) -> Union[bytes, str]: # {'total': 0, 'avg': 0, 'remain': 0, 'list': []} y_extend = 0 level = 3 - for index, i in enumerate(all_gacha_type_name): + for index, i in enumerate(your_gacha_type_list): title = Image.open(TEXT_PATH / 'gahca_title.png') if i == '常驻祈愿': level = await get_level_from_list( @@ -408,7 +421,7 @@ async def draw_gachalogs_img(uid: str, ev: Event) -> Union[bytes, str]: ( 1 + ( - (total_data[all_gacha_type_name[index - 1]]['total'] - 1) + (total_data[your_gacha_type_list[index - 1]]['total'] - 1) // 6 ) )