mirror of
https://github.com/KimigaiiWuyi/GenshinUID.git
synced 2025-05-08 04:55:51 +08:00
🐛 修复一些BUG
This commit is contained in:
parent
e31223c49e
commit
b46a8454cb
@ -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)
|
||||
|
@ -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]
|
||||
|
25
GenshinUID/genshinuid_collection/draw_new_collection_card.py
Normal file
25
GenshinUID/genshinuid_collection/draw_new_collection_card.py
Normal 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)
|
BIN
GenshinUID/genshinuid_collection/texture2D/area_bg.png
Normal file
BIN
GenshinUID/genshinuid_collection/texture2D/area_bg.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 113 KiB |
@ -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')
|
||||
|
@ -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 = ''
|
||||
|
@ -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():
|
||||
|
@ -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)]))
|
||||
|
@ -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:
|
||||
|
@ -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:
|
||||
|
@ -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),
|
||||
|
@ -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)
|
||||
|
@ -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:
|
||||
|
@ -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):
|
||||
|
@ -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
|
||||
|
@ -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 = []
|
||||
|
Loading…
x
Reference in New Issue
Block a user