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

View File

@ -1,15 +1,20 @@
import math
from pathlib import Path
from typing import Union, List, Optional
from typing import List, Union, Optional
from PIL import Image, ImageDraw
from gsuid_core.logger import logger
from gsuid_core.utils.error_reply import get_error
import math
from .utils import get_icon
from ..utils.convert import GsCookie
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 ..sruid_utils.api.mys.models import (
RogueAvatar,
RogueMiracles,
RogueBuffitems,
)
from ..utils.fonts.starrail_fonts import (
sr_font_22,
sr_font_28,
@ -74,10 +79,12 @@ bufflist = {
126: '欢愉',
}
async def get_abyss_star_pic(star: int) -> Image.Image:
star_pic = Image.open(TEXT_PATH / f'star{star}.png')
return star_pic
async def _draw_rogue_buff(
buffs: List[RogueBuffitems],
buff_icon: str,
@ -99,19 +106,21 @@ async def _draw_rogue_buff(
)
draw_height = draw_height + 40
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
zb_list = []
for l in range(need_middle):
for i in range(3):
zb_list.append([l,i])
zb_list.append([l, i])
jishu = 0
for item in buffs:
if item['is_evoluted'] == True:
is_evoluted = 1
else:
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))
z_left = 90 + 240 * zb_list[jishu][1]
z_top = buff_height + 450 + 55 * zb_list[jishu][0]
@ -125,18 +134,19 @@ async def _draw_rogue_buff(
anchor='mm',
)
return draw_height
async def _draw_rogue_miracles(
miracles: List[RogueMiracles],
floor_pic: Image.Image,
buff_height: int,
):
miracles_num = len(miracles)
need_middle = math.ceil(miracles_num/8)
need_middle = math.ceil(miracles_num / 8)
zb_list = []
for l in range(need_middle):
for i in range(8):
zb_list.append([l,i])
zb_list.append([l, i])
jishu = 0
for miracle in miracles:
miracles_icon = (await get_icon(miracle['icon'])).resize((80, 80))
@ -144,7 +154,8 @@ async def _draw_rogue_miracles(
z_top = buff_height + 470 + 90 * zb_list[jishu][0]
jishu = jishu + 1
floor_pic.paste(miracles_icon, (z_left, z_top), mask=miracles_icon)
async def _draw_rogue_card(
char: RogueAvatar,
talent_num: str,
@ -180,6 +191,7 @@ async def _draw_rogue_card(
char_bg,
)
async def draw_rogue_img(
qid: Union[str, int],
uid: str,
@ -204,21 +216,21 @@ async def draw_rogue_img(
# else:
# return '没有获取到角色数据'
# char_temp = {}
#计算背景图尺寸
# 计算背景图尺寸
rogue_detail = raw_rogue_data['current_record']['records']
#宇宙数量
# 宇宙数量
detail_num = len(rogue_detail)
#记录打的宇宙列表
# 记录打的宇宙列表
detail_list = []
based_h = 657
for index_floor, detail in enumerate(rogue_detail):
#100+70+170
#头+底+角色
# 100+70+170
# 头+底+角色
detail_h = 340
progress = detail['progress']
detail_list.append(progress)
#祝福
# 祝福
if len(detail['base_type_list']) > 0:
buff_h = 60
for buff in detail['buffs']:
@ -228,14 +240,14 @@ async def draw_rogue_img(
else:
buff_h = 0
detail_h = detail_h + buff_h
#奇物
# 奇物
if len(detail['miracles']) > 0:
miracles_h = 60
miracles_num = len(detail['miracles'])
miracles_h = miracles_h + math.ceil(miracles_num / 8) * 90
else:
miracles_h = 0
miracles_h = 0
detail_h = detail_h + miracles_h
rogue_detail[index_floor]['detail_h'] = detail_h
rogue_detail[index_floor]['start_h'] = based_h
@ -281,7 +293,7 @@ async def draw_rogue_img(
# 总体数据
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(
@ -298,7 +310,7 @@ async def draw_rogue_img(
sr_font_28,
'mm',
)
# 奇物解锁
img_draw.text(
(450, 569),
@ -314,7 +326,7 @@ async def draw_rogue_img(
sr_font_28,
'mm',
)
# 祝福解锁
img_draw.text(
(730, 569),
@ -337,29 +349,37 @@ async def draw_rogue_img(
index_floor = 0
else:
continue
floor_pic = Image.open(TEXT_PATH / 'detail_bg.png').convert("RGBA")
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_center_pic = Image.open(TEXT_PATH / 'floor_bg_center.png').convert("RGBA")
floor_center_pic = floor_center_pic.resize((900, detail['detail_h'] - 170))
floor_center_pic = Image.open(
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_bot_pic = Image.open(TEXT_PATH / 'floor_bg_bot.png').convert("RGBA")
floor_pic.paste(floor_bot_pic, (0, detail['detail_h'] - 70), floor_bot_pic)
floor_bot_pic = Image.open(TEXT_PATH / 'floor_bg_bot.png').convert(
"RGBA"
)
floor_pic.paste(
floor_bot_pic, (0, detail['detail_h'] - 70), floor_bot_pic
)
floor_name = progresslist[detail['progress']]
difficulty_name = difficultylist[detail['difficulty']]
time_array = detail['finish_time']
time_str = f"{time_array['year']}-{time_array['month']}"
time_str = f"{time_str}-{time_array['day']}"
time_str = (
f"{time_str} {time_array['hour']}:{time_array['minute']}"
)
time_str = f"{time_str} {time_array['hour']}:{time_array['minute']}"
floor_pic_draw = ImageDraw.Draw(floor_pic)
floor_pic_draw.text(
(450, 60),
@ -382,8 +402,8 @@ async def draw_rogue_img(
sr_font_22,
'rm',
)
#角色
# 角色
for index_char, char in enumerate(detail['final_lineup']):
# 获取命座
# if char["id"] in char_temp:
@ -402,8 +422,8 @@ async def draw_rogue_img(
floor_pic,
index_char,
)
#祝福
# 祝福
buff_height = 0
if len(detail['base_type_list']) > 0:
floor_pic_draw.text(
@ -426,8 +446,8 @@ async def draw_rogue_img(
buff_height,
)
buff_height = buff_height + draw_height
#奇物
# 奇物
if len(detail['miracles']) > 0:
floor_pic_draw.text(
(93, 370 + buff_height + 60),
@ -436,21 +456,23 @@ async def draw_rogue_img(
sr_font_34,
'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(
detail['miracles'],
floor_pic,
buff_height,
)
img.paste(floor_pic, (0, detail['start_h']), floor_pic)
# await _draw_floor_card(
# level_star,
# floor_pic,
# img,
# index_floor,
# floor_name,
# round_num,
# level_star,
# floor_pic,
# img,
# index_floor,
# floor_name,
# round_num,
# )
res = await convert_img(img)

View File

@ -80,7 +80,7 @@ class GsCookie:
self.uid, schedule_type, self.cookie
)
return data
async def get_rogue_data(
self, uid: str, schedule_type: str = '3'
) -> Union[RogueData, int]:
@ -90,7 +90,7 @@ class GsCookie:
self.uid, schedule_type, self.cookie
)
return data
async def check_cookies_useable(self):
if isinstance(self.raw_data, int) and self.cookie:
retcode = self.raw_data

View File

@ -280,7 +280,7 @@ class MysApi(_MysApi):
if isinstance(data, Dict):
data = cast(AbyssData, data['data'])
return data
async def get_rogue_info(
self,
uid: str,
@ -304,7 +304,7 @@ class MysApi(_MysApi):
if isinstance(data, Dict):
data = cast(RogueData, data['data'])
return data
async def mys_sign(
self, uid, header={}, server_id='cn_gf01'
) -> Union[MysSign, int]: