🚨 pre-commit-ci修复格式错误

This commit is contained in:
pre-commit-ci[bot] 2023-06-08 02:55:20 +00:00
parent ea6a751817
commit eb51dc4c94
4 changed files with 90 additions and 55 deletions

View File

@ -38,6 +38,7 @@ class RoleBasicInfo(TypedDict):
# 模拟宇宙相关 # # 模拟宇宙相关 #
################ ################
class RogueTime(TypedDict): class RogueTime(TypedDict):
year: int year: int
month: int month: int
@ -46,6 +47,7 @@ class RogueTime(TypedDict):
minute: int minute: int
second: int second: int
class RogueAvatar(TypedDict): class RogueAvatar(TypedDict):
id: int id: int
icon: str icon: str
@ -53,26 +55,31 @@ class RogueAvatar(TypedDict):
rarity: int rarity: int
element: str element: str
class RogueBaseType(TypedDict): class RogueBaseType(TypedDict):
id: int id: int
name: str name: str
cnt: int cnt: int
class RogueBuffitems(TypedDict): class RogueBuffitems(TypedDict):
id: int id: int
name: str name: str
is_evoluted: str is_evoluted: str
rank: int rank: int
class RogueMiracles(TypedDict): class RogueMiracles(TypedDict):
id: int id: int
name: str name: str
icon: str icon: str
class RogueBuffs(TypedDict): class RogueBuffs(TypedDict):
base_type: RogueBaseType base_type: RogueBaseType
items: List[RogueBuffitems] items: List[RogueBuffitems]
class RogueRecordInfo(TypedDict): class RogueRecordInfo(TypedDict):
name: str name: str
finish_time: RogueTime finish_time: RogueTime
@ -85,31 +92,37 @@ class RogueRecordInfo(TypedDict):
difficulty: int difficulty: int
progress: int progress: int
class RogueBasic(TypedDict): class RogueBasic(TypedDict):
id: int id: int
finish_cnt: int finish_cnt: int
schedule_begin: RogueTime schedule_begin: RogueTime
schedule_end: RogueTime schedule_end: RogueTime
class RogueRecord(TypedDict): class RogueRecord(TypedDict):
basic: RogueBasic basic: RogueBasic
records: List[RogueRecordInfo] records: List[RogueRecordInfo]
class RogueBasicInfo(TypedDict): class RogueBasicInfo(TypedDict):
unlocked_buff_num: int unlocked_buff_num: int
unlocked_miracle_num: int unlocked_miracle_num: int
unlocked_skill_points: int unlocked_skill_points: int
class RoleInfo(TypedDict): class RoleInfo(TypedDict):
server: str server: str
nickname: str nickname: str
level: int level: int
class RogueData(TypedDict): class RogueData(TypedDict):
role: RoleInfo role: RoleInfo
basic_info: RogueBasicInfo basic_info: RogueBasicInfo
current_record: RogueRecord current_record: RogueRecord
################ ################
# 深渊相关 # # 深渊相关 #
################ ################

View File

@ -1,15 +1,20 @@
import math
from pathlib import Path from pathlib import Path
from typing import Union, List, Optional from typing import List, Union, Optional
from PIL import Image, ImageDraw from PIL import Image, ImageDraw
from gsuid_core.logger import logger from gsuid_core.logger import logger
from gsuid_core.utils.error_reply import get_error from gsuid_core.utils.error_reply import get_error
import math
from .utils import get_icon from .utils import get_icon
from ..utils.convert import GsCookie from ..utils.convert import GsCookie
from ..utils.image.convert import convert_img from ..utils.image.convert import convert_img
from ..sruid_utils.api.mys.models import RogueAvatar, RogueBuffitems, RogueMiracles
from ..utils.image.image_tools import get_qq_avatar, draw_pic_with_ring from ..utils.image.image_tools import get_qq_avatar, draw_pic_with_ring
from ..sruid_utils.api.mys.models import (
RogueAvatar,
RogueMiracles,
RogueBuffitems,
)
from ..utils.fonts.starrail_fonts import ( from ..utils.fonts.starrail_fonts import (
sr_font_22, sr_font_22,
sr_font_28, sr_font_28,
@ -74,10 +79,12 @@ bufflist = {
126: '欢愉', 126: '欢愉',
} }
async def get_abyss_star_pic(star: int) -> Image.Image: async def get_abyss_star_pic(star: int) -> Image.Image:
star_pic = Image.open(TEXT_PATH / f'star{star}.png') star_pic = Image.open(TEXT_PATH / f'star{star}.png')
return star_pic return star_pic
async def _draw_rogue_buff( async def _draw_rogue_buff(
buffs: List[RogueBuffitems], buffs: List[RogueBuffitems],
buff_icon: str, buff_icon: str,
@ -99,19 +106,21 @@ async def _draw_rogue_buff(
) )
draw_height = draw_height + 40 draw_height = draw_height + 40
buff_num = len(buffs) buff_num = len(buffs)
need_middle = math.ceil(buff_num/3) need_middle = math.ceil(buff_num / 3)
draw_height = draw_height + need_middle * 55 draw_height = draw_height + need_middle * 55
zb_list = [] zb_list = []
for l in range(need_middle): for l in range(need_middle):
for i in range(3): for i in range(3):
zb_list.append([l,i]) zb_list.append([l, i])
jishu = 0 jishu = 0
for item in buffs: for item in buffs:
if item['is_evoluted'] == True: if item['is_evoluted'] == True:
is_evoluted = 1 is_evoluted = 1
else: else:
is_evoluted = 0 is_evoluted = 0
buff_bg = Image.open(TEXT_PATH / f'zhufu_{item["rank"]}_{is_evoluted}.png') buff_bg = Image.open(
TEXT_PATH / f'zhufu_{item["rank"]}_{is_evoluted}.png'
)
buff_bg = buff_bg.resize((233, 35)) buff_bg = buff_bg.resize((233, 35))
z_left = 90 + 240 * zb_list[jishu][1] z_left = 90 + 240 * zb_list[jishu][1]
z_top = buff_height + 450 + 55 * zb_list[jishu][0] z_top = buff_height + 450 + 55 * zb_list[jishu][0]
@ -126,17 +135,18 @@ async def _draw_rogue_buff(
) )
return draw_height return draw_height
async def _draw_rogue_miracles( async def _draw_rogue_miracles(
miracles: List[RogueMiracles], miracles: List[RogueMiracles],
floor_pic: Image.Image, floor_pic: Image.Image,
buff_height: int, buff_height: int,
): ):
miracles_num = len(miracles) miracles_num = len(miracles)
need_middle = math.ceil(miracles_num/8) need_middle = math.ceil(miracles_num / 8)
zb_list = [] zb_list = []
for l in range(need_middle): for l in range(need_middle):
for i in range(8): for i in range(8):
zb_list.append([l,i]) zb_list.append([l, i])
jishu = 0 jishu = 0
for miracle in miracles: for miracle in miracles:
miracles_icon = (await get_icon(miracle['icon'])).resize((80, 80)) miracles_icon = (await get_icon(miracle['icon'])).resize((80, 80))
@ -145,6 +155,7 @@ async def _draw_rogue_miracles(
jishu = jishu + 1 jishu = jishu + 1
floor_pic.paste(miracles_icon, (z_left, z_top), mask=miracles_icon) floor_pic.paste(miracles_icon, (z_left, z_top), mask=miracles_icon)
async def _draw_rogue_card( async def _draw_rogue_card(
char: RogueAvatar, char: RogueAvatar,
talent_num: str, talent_num: str,
@ -180,6 +191,7 @@ async def _draw_rogue_card(
char_bg, char_bg,
) )
async def draw_rogue_img( async def draw_rogue_img(
qid: Union[str, int], qid: Union[str, int],
uid: str, uid: str,
@ -205,20 +217,20 @@ async def draw_rogue_img(
# return '没有获取到角色数据' # return '没有获取到角色数据'
# char_temp = {} # char_temp = {}
#计算背景图尺寸 # 计算背景图尺寸
rogue_detail = raw_rogue_data['current_record']['records'] rogue_detail = raw_rogue_data['current_record']['records']
#宇宙数量 # 宇宙数量
detail_num = len(rogue_detail) detail_num = len(rogue_detail)
#记录打的宇宙列表 # 记录打的宇宙列表
detail_list = [] detail_list = []
based_h = 657 based_h = 657
for index_floor, detail in enumerate(rogue_detail): for index_floor, detail in enumerate(rogue_detail):
#100+70+170 # 100+70+170
#头+底+角色 # 头+底+角色
detail_h = 340 detail_h = 340
progress = detail['progress'] progress = detail['progress']
detail_list.append(progress) detail_list.append(progress)
#祝福 # 祝福
if len(detail['base_type_list']) > 0: if len(detail['base_type_list']) > 0:
buff_h = 60 buff_h = 60
for buff in detail['buffs']: for buff in detail['buffs']:
@ -229,7 +241,7 @@ async def draw_rogue_img(
buff_h = 0 buff_h = 0
detail_h = detail_h + buff_h detail_h = detail_h + buff_h
#奇物 # 奇物
if len(detail['miracles']) > 0: if len(detail['miracles']) > 0:
miracles_h = 60 miracles_h = 60
miracles_num = len(detail['miracles']) miracles_num = len(detail['miracles'])
@ -281,7 +293,7 @@ async def draw_rogue_img(
# 总体数据 # 总体数据
rogue_data = Image.open(TEXT_PATH / 'data.png') rogue_data = Image.open(TEXT_PATH / 'data.png')
img.paste(rogue_data, (0, 500), rogue_data ) img.paste(rogue_data, (0, 500), rogue_data)
# 技能树激活 # 技能树激活
img_draw.text( img_draw.text(
@ -341,15 +353,25 @@ async def draw_rogue_img(
floor_pic = Image.open(TEXT_PATH / 'detail_bg.png').convert("RGBA") floor_pic = Image.open(TEXT_PATH / 'detail_bg.png').convert("RGBA")
floor_pic = floor_pic.resize((900, detail['detail_h'])) floor_pic = floor_pic.resize((900, detail['detail_h']))
floor_top_pic = Image.open(TEXT_PATH / 'floor_bg_top.png').convert("RGBA") floor_top_pic = Image.open(TEXT_PATH / 'floor_bg_top.png').convert(
"RGBA"
)
floor_pic.paste(floor_top_pic, (0, 0), floor_top_pic) floor_pic.paste(floor_top_pic, (0, 0), floor_top_pic)
floor_center_pic = Image.open(TEXT_PATH / 'floor_bg_center.png').convert("RGBA") floor_center_pic = Image.open(
floor_center_pic = floor_center_pic.resize((900, detail['detail_h'] - 170)) TEXT_PATH / 'floor_bg_center.png'
).convert("RGBA")
floor_center_pic = floor_center_pic.resize(
(900, detail['detail_h'] - 170)
)
floor_pic.paste(floor_center_pic, (0, 100), floor_center_pic) floor_pic.paste(floor_center_pic, (0, 100), floor_center_pic)
floor_bot_pic = Image.open(TEXT_PATH / 'floor_bg_bot.png').convert("RGBA") floor_bot_pic = Image.open(TEXT_PATH / 'floor_bg_bot.png').convert(
floor_pic.paste(floor_bot_pic, (0, detail['detail_h'] - 70), floor_bot_pic) "RGBA"
)
floor_pic.paste(
floor_bot_pic, (0, detail['detail_h'] - 70), floor_bot_pic
)
floor_name = progresslist[detail['progress']] floor_name = progresslist[detail['progress']]
difficulty_name = difficultylist[detail['difficulty']] difficulty_name = difficultylist[detail['difficulty']]
@ -357,9 +379,7 @@ async def draw_rogue_img(
time_array = detail['finish_time'] time_array = detail['finish_time']
time_str = f"{time_array['year']}-{time_array['month']}" time_str = f"{time_array['year']}-{time_array['month']}"
time_str = f"{time_str}-{time_array['day']}" time_str = f"{time_str}-{time_array['day']}"
time_str = ( time_str = f"{time_str} {time_array['hour']}:{time_array['minute']}"
f"{time_str} {time_array['hour']}:{time_array['minute']}"
)
floor_pic_draw = ImageDraw.Draw(floor_pic) floor_pic_draw = ImageDraw.Draw(floor_pic)
floor_pic_draw.text( floor_pic_draw.text(
(450, 60), (450, 60),
@ -383,7 +403,7 @@ async def draw_rogue_img(
'rm', 'rm',
) )
#角色 # 角色
for index_char, char in enumerate(detail['final_lineup']): for index_char, char in enumerate(detail['final_lineup']):
# 获取命座 # 获取命座
# if char["id"] in char_temp: # if char["id"] in char_temp:
@ -403,7 +423,7 @@ async def draw_rogue_img(
index_char, index_char,
) )
#祝福 # 祝福
buff_height = 0 buff_height = 0
if len(detail['base_type_list']) > 0: if len(detail['base_type_list']) > 0:
floor_pic_draw.text( floor_pic_draw.text(
@ -427,7 +447,7 @@ async def draw_rogue_img(
) )
buff_height = buff_height + draw_height buff_height = buff_height + draw_height
#奇物 # 奇物
if len(detail['miracles']) > 0: if len(detail['miracles']) > 0:
floor_pic_draw.text( floor_pic_draw.text(
(93, 370 + buff_height + 60), (93, 370 + buff_height + 60),
@ -436,7 +456,9 @@ async def draw_rogue_img(
sr_font_34, sr_font_34,
'lm', 'lm',
) )
floor_pic.paste(content_center, (0, 370 + buff_height + 80), content_center) floor_pic.paste(
content_center, (0, 370 + buff_height + 80), content_center
)
await _draw_rogue_miracles( await _draw_rogue_miracles(
detail['miracles'], detail['miracles'],
floor_pic, floor_pic,