🐛 修复一些BUG

This commit is contained in:
KimigaiiWuyi 2023-11-17 03:24:37 +08:00
parent e31223c49e
commit b46a8454cb
16 changed files with 50 additions and 28 deletions

View File

@ -20,7 +20,7 @@ async def send_abyss_info(bot: Bot, ev: Event):
return
await bot.logger.info('开始执行[查询深渊信息]')
uid = await get_uid(bot, ev)
uid, user_id = await get_uid(bot, ev, True)
if uid is None:
return await bot.send(UID_HINT)
await bot.logger.info('[查询深渊信息]uid: {}'.format(uid))
@ -47,5 +47,5 @@ async def send_abyss_info(bot: Bot, ev: Event):
await bot.logger.info('[查询深渊信息]深渊层数: {}'.format(floor))
im = await draw_abyss_img(ev.user_id, uid, floor, schedule_type)
im = await draw_abyss_img(user_id, uid, floor, schedule_type)
await bot.send(im)

View File

@ -79,7 +79,7 @@ async def get_explore_data(
uid: str,
) -> Union[bytes, str, Tuple[Dict[str, float], Dict[str, str], str, str, str]]:
raw_data = await get_base_data(uid)
if isinstance(raw_data, str) or isinstance(raw_data, bytes):
if isinstance(raw_data, (str, bytes, bytearray, memoryview)):
return raw_data
# 处理数据
@ -126,7 +126,7 @@ async def get_collection_data(
uid: str,
) -> Union[bytes, str, Tuple[Dict[str, float], Dict[str, str], str, str, str]]:
raw_data = await get_base_data(uid)
if isinstance(raw_data, str) or isinstance(raw_data, bytes):
if isinstance(raw_data, (str, bytes, bytearray, memoryview)):
return raw_data
raw_data = raw_data['stats']
@ -173,7 +173,7 @@ async def draw_base_img(
else:
data = await get_explore_data(uid)
if isinstance(data, str) or isinstance(data, bytes):
if isinstance(data, (str, bytes, bytearray, memoryview)):
return data
percent_data, value_data = data[0], data[1]

View File

@ -0,0 +1,25 @@
from PIL import Image
from gsuid_core.utils.download_resource.download_image import get_image
from ..utils.resource.RESOURCE_PATH import ICON_PATH
from .draw_collection_card import TEXT_PATH, get_base_data
async def draw_explore(uid: str):
raw_data = await get_base_data(uid)
if isinstance(raw_data, str) or isinstance(
raw_data, (bytes, bytearray, memoryview)
):
return raw_data
worlds = raw_data['world_explorations']
for world in worlds:
area_bg = (
Image.open(TEXT_PATH / 'area_bg')
.resize((216, 216))
.convert('RGBA')
)
icon = await get_image(world['icon'], ICON_PATH)
# percent = world['exploration_percentage']
area_bg.paste(icon, (27, 27), icon)

Binary file not shown.

After

Width:  |  Height:  |  Size: 113 KiB

View File

@ -65,15 +65,10 @@ async def draw_daily_cost_img(is_force: bool = False) -> Union[str, bytes]:
icon_id = data[domain][0]
icon = await get_ambr_icon('UI', icon_id, ICON_PATH, 'ItemIcon')
icon = icon.resize((77, 77))
icon = icon.resize((77, 77)).convert('RGBA')
bar = Image.open(TEXT_PATH / 'bar.png')
bar_draw = ImageDraw.Draw(bar)
if icon.mode == 'RGBA':
mask = icon.split()[3] # 获取alpha通道作为遮罩
bar.paste(icon, (43, 10), mask)
else:
bar.paste(icon, (43, 10)) # 如果没有alpha通道不使用遮罩
bar.paste(icon, (43, 10), icon)
domain1, domain2 = domain.split('')
bar_draw.text((142, 50), domain2, 'black', gs_font_44, 'lm')

View File

@ -125,7 +125,7 @@ async def get_first_main(mainName: str) -> str:
return equipMain
async def get_char_std(raw_data: dict, char_name: str) -> dmgMap:
async def get_char_std(raw_data: dict, char_name: str):
weaponName = raw_data['weaponInfo']['weaponName']
equipMain = ''

View File

@ -170,7 +170,7 @@ class DrawEventList:
if isinstance(base_img, bytes):
return base_img
else:
return bytes(base_img, 'utf8')
return bytes(base_img)
async def get_and_save_gacha_img(self):
base_h = 100 + len(self.gacha_event) * 480
@ -247,7 +247,7 @@ class DrawEventList:
if isinstance(base_img, bytes):
return base_img
else:
return bytes(base_img, 'utf8')
return bytes(base_img)
async def get_all_event_img():

View File

@ -107,4 +107,6 @@ async def export_gachalogurl(bot: Bot, ev: Event):
im = await get_gachaurl(uid)
if isinstance(im, bytes):
return await bot.send(im)
if isinstance(im, (bytearray, memoryview)):
return await bot.send(bytes(im))
await bot.send(MessageSegment.node([MessageSegment.text(im)]))

View File

@ -66,7 +66,7 @@ async def single_get_draw(bot_id: str, uid: str, gid: str, qid: str):
im = await post_my_draw(uid)
if isinstance(im, bytes):
if isinstance(im, (bytes, bytearray, memoryview)):
return
if '没有需要获取' in im:

View File

@ -6,8 +6,8 @@ from typing import Union
from PIL import Image, ImageDraw
from gsuid_core.logger import logger
from gsuid_core.utils.api.mys.models import Expedition
from gsuid_core.utils.error_reply import get_error_img
from gsuid_core.utils.database.models import GsBind, GsUser
from gsuid_core.utils.error_reply import UID_HINT, get_error_img
from ..utils.mys_api import mys_api
from ..utils.api.mys.models import FakeResin
@ -89,7 +89,7 @@ async def get_resin_img(bot_id: str, user_id: str):
uid_list = await GsBind.get_uid_list_by_game(user_id, bot_id)
logger.info('[每日信息]UID: {}'.format(uid_list))
if uid_list is None:
return
return UID_HINT
# 进行校验UID是否绑定CK
useable_uid_list = []
for uid in uid_list:

View File

@ -130,7 +130,7 @@ async def draw_single_constellation(
path = ICON_PATH / icon_name
if not path.exists():
await download(image, 8, icon_name)
icon = Image.open(path).resize((38, 38))
icon = Image.open(path).resize((38, 38)).convert('RBGA')
img.paste(icon, (57, 37), icon)
img_draw.text(
(134, 40),

View File

@ -99,11 +99,8 @@ async def draw_xk_abyss_img():
# 绘图部分
char_bg = Image.open(TEXT_PATH / 'char_bg.png')
charimg = Image.open(CHAR_PATH / f'{char_id}.png').resize((117, 117))
if charimg.mode == 'RGBA':
mask = charimg.split()[3] # 使用alpha通道作为mask
char_bg.paste(charimg, (6, 2), mask)
else:
char_bg.paste(charimg, (6, 2))
charimg = charimg.convert('RGBA')
char_bg.paste(charimg, (6, 2), charimg)
char_bg_draw = ImageDraw.Draw(char_bg)
if char['rarity'] >= 5:
text = (193, 123, 0)

View File

@ -3,6 +3,7 @@ import json
from pathlib import Path
from openpyxl import load_workbook
from openpyxl.worksheet.worksheet import Worksheet
sample = {
'weapon': {'5': [], '4': [], '3': []},
@ -16,7 +17,7 @@ path = Path(__file__).parents[1] / 'genshinuid_adv'
data_path = Path(__file__).parent / 'help_data'
wb = load_workbook(str(data_path / 'Genshin All Char.xlsx'))
ws = wb.active
ws: Worksheet = wb.active # type: ignore
for char_i in range(2, 1700, 5): # 角色行
char = ws.cell(char_i, 1).value
if char is None:

View File

@ -3,6 +3,7 @@ import json
from pathlib import Path
from openpyxl import load_workbook
from openpyxl.worksheet.worksheet import Worksheet
sample = {
'name': '',
@ -21,7 +22,7 @@ HELP_PATH = Path(__file__).parents[1] / 'genshinuid_help'
# 表格地址: https://kdocs.cn/l/ccpc6z0bZx6u
wb = load_workbook(str(DATA_PATH / 'GenshinUID Help.xlsx'))
ws = wb.active
ws: Worksheet = wb.active # type: ignore
module_name_str = ''
for row in range(2, 999):

View File

@ -21,7 +21,7 @@ result_all = {}
is_first = False
for row in range(3, 100):
task = ws_daily.cell(row, 3).value
task: str = ws_daily.cell(row, 3).value # type: ignore
achi = ws_daily.cell(row, 4).value
desc = ws_daily.cell(row, 5).value
guide = ws_daily.cell(row, 6).value

View File

@ -4,6 +4,7 @@ from pathlib import Path
import httpx
import openpyxl
from openpyxl.worksheet.worksheet import Worksheet
R_PATH = Path(__file__).parent
DATA_PATH = R_PATH / 'blue_data'
@ -122,7 +123,7 @@ async def panle2Json() -> None:
访问DATA_PATH并转换数据为dmgMap.json
'''
wb = openpyxl.load_workbook(str(DATA_PATH / '参考面板.xlsx'), data_only=True)
sheet = wb.active
sheet: Worksheet = wb.active # type: ignore
result = {}
char_result = []