🐛 修复一些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 return
await bot.logger.info('开始执行[查询深渊信息]') await bot.logger.info('开始执行[查询深渊信息]')
uid = await get_uid(bot, ev) uid, user_id = await get_uid(bot, ev, True)
if uid is None: if uid is None:
return await bot.send(UID_HINT) return await bot.send(UID_HINT)
await bot.logger.info('[查询深渊信息]uid: {}'.format(uid)) 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)) 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) await bot.send(im)

View File

@ -79,7 +79,7 @@ async def get_explore_data(
uid: str, uid: str,
) -> Union[bytes, str, Tuple[Dict[str, float], Dict[str, str], str, str, str]]: ) -> Union[bytes, str, Tuple[Dict[str, float], Dict[str, str], str, str, str]]:
raw_data = await get_base_data(uid) 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 return raw_data
# 处理数据 # 处理数据
@ -126,7 +126,7 @@ async def get_collection_data(
uid: str, uid: str,
) -> Union[bytes, str, Tuple[Dict[str, float], Dict[str, str], str, str, str]]: ) -> Union[bytes, str, Tuple[Dict[str, float], Dict[str, str], str, str, str]]:
raw_data = await get_base_data(uid) 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 return raw_data
raw_data = raw_data['stats'] raw_data = raw_data['stats']
@ -173,7 +173,7 @@ async def draw_base_img(
else: else:
data = await get_explore_data(uid) data = await get_explore_data(uid)
if isinstance(data, str) or isinstance(data, bytes): if isinstance(data, (str, bytes, bytearray, memoryview)):
return data return data
percent_data, value_data = data[0], data[1] 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_id = data[domain][0]
icon = await get_ambr_icon('UI', icon_id, ICON_PATH, 'ItemIcon') 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 = Image.open(TEXT_PATH / 'bar.png')
bar_draw = ImageDraw.Draw(bar) bar_draw = ImageDraw.Draw(bar)
if icon.mode == 'RGBA': bar.paste(icon, (43, 10), icon)
mask = icon.split()[3] # 获取alpha通道作为遮罩
bar.paste(icon, (43, 10), mask)
else:
bar.paste(icon, (43, 10)) # 如果没有alpha通道不使用遮罩
domain1, domain2 = domain.split('') domain1, domain2 = domain.split('')
bar_draw.text((142, 50), domain2, 'black', gs_font_44, 'lm') 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 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'] weaponName = raw_data['weaponInfo']['weaponName']
equipMain = '' equipMain = ''

View File

@ -170,7 +170,7 @@ class DrawEventList:
if isinstance(base_img, bytes): if isinstance(base_img, bytes):
return base_img return base_img
else: else:
return bytes(base_img, 'utf8') return bytes(base_img)
async def get_and_save_gacha_img(self): async def get_and_save_gacha_img(self):
base_h = 100 + len(self.gacha_event) * 480 base_h = 100 + len(self.gacha_event) * 480
@ -247,7 +247,7 @@ class DrawEventList:
if isinstance(base_img, bytes): if isinstance(base_img, bytes):
return base_img return base_img
else: else:
return bytes(base_img, 'utf8') return bytes(base_img)
async def get_all_event_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) im = await get_gachaurl(uid)
if isinstance(im, bytes): if isinstance(im, bytes):
return await bot.send(im) return await bot.send(im)
if isinstance(im, (bytearray, memoryview)):
return await bot.send(bytes(im))
await bot.send(MessageSegment.node([MessageSegment.text(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) im = await post_my_draw(uid)
if isinstance(im, bytes): if isinstance(im, (bytes, bytearray, memoryview)):
return return
if '没有需要获取' in im: if '没有需要获取' in im:

View File

@ -6,8 +6,8 @@ from typing import Union
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.api.mys.models import Expedition 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.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.mys_api import mys_api
from ..utils.api.mys.models import FakeResin 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) uid_list = await GsBind.get_uid_list_by_game(user_id, bot_id)
logger.info('[每日信息]UID: {}'.format(uid_list)) logger.info('[每日信息]UID: {}'.format(uid_list))
if uid_list is None: if uid_list is None:
return return UID_HINT
# 进行校验UID是否绑定CK # 进行校验UID是否绑定CK
useable_uid_list = [] useable_uid_list = []
for uid in uid_list: for uid in uid_list:

View File

@ -130,7 +130,7 @@ async def draw_single_constellation(
path = ICON_PATH / icon_name path = ICON_PATH / icon_name
if not path.exists(): if not path.exists():
await download(image, 8, icon_name) 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.paste(icon, (57, 37), icon)
img_draw.text( img_draw.text(
(134, 40), (134, 40),

View File

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

View File

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

View File

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

View File

@ -21,7 +21,7 @@ result_all = {}
is_first = False is_first = False
for row in range(3, 100): 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 achi = ws_daily.cell(row, 4).value
desc = ws_daily.cell(row, 5).value desc = ws_daily.cell(row, 5).value
guide = ws_daily.cell(row, 6).value guide = ws_daily.cell(row, 6).value

View File

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