🎨 适配新版core的图片报错

This commit is contained in:
Wuyi无疑 2023-06-17 21:58:17 +08:00
parent f7db757220
commit 65a52123f2
16 changed files with 65 additions and 58 deletions

View File

@ -5,7 +5,7 @@ from typing import 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_img
from gsuid_core.utils.api.mys.models import AbyssBattleAvatar from gsuid_core.utils.api.mys.models import AbyssBattleAvatar
from ..utils.convert import GsCookie from ..utils.convert import GsCookie
@ -123,7 +123,7 @@ async def draw_abyss_img(
# 获取数据 # 获取数据
if isinstance(raw_abyss_data, int): if isinstance(raw_abyss_data, int):
return get_error(raw_abyss_data) return await get_error_img(raw_abyss_data)
if raw_data: if raw_data:
char_data = raw_data['avatars'] char_data = raw_data['avatars']
else: else:

View File

@ -5,7 +5,7 @@ import httpx
import aiofiles import aiofiles
from gsuid_core.logger import logger from gsuid_core.logger import logger
from urllib3 import encode_multipart_formdata from urllib3 import encode_multipart_formdata
from gsuid_core.utils.error_reply import get_error from gsuid_core.utils.error_reply import get_error_img
from gsuid_core.utils.api.mys.request import RECOGNIZE_SERVER from gsuid_core.utils.api.mys.request import RECOGNIZE_SERVER
from ..utils.mys_api import mys_api from ..utils.mys_api import mys_api
@ -16,7 +16,7 @@ async def get_gachaurl(uid: str):
server_id = RECOGNIZE_SERVER.get(str(uid)[0]) server_id = RECOGNIZE_SERVER.get(str(uid)[0])
authkey_rawdata = await mys_api.get_authkey_by_cookie(uid) authkey_rawdata = await mys_api.get_authkey_by_cookie(uid)
if isinstance(authkey_rawdata, int): if isinstance(authkey_rawdata, int):
return get_error(authkey_rawdata) return await get_error_img(authkey_rawdata)
authkey = authkey_rawdata['authkey'] authkey = authkey_rawdata['authkey']
now = time.time() now = time.time()
url = ( url = (

View File

@ -3,7 +3,7 @@ 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.error_reply import get_error from gsuid_core.utils.error_reply import get_error_img
from ..utils.mys_api import mys_api from ..utils.mys_api import mys_api
from ..utils.image.convert import convert_img from ..utils.image.convert import convert_img
@ -26,7 +26,7 @@ async def draw_deck_img(
# 获取数据 # 获取数据
raw_data = await mys_api.get_gcg_deck(uid) raw_data = await mys_api.get_gcg_deck(uid)
if isinstance(raw_data, int): if isinstance(raw_data, int):
return get_error(raw_data) return await get_error_img(raw_data)
if len(raw_data['deck_list']) < deck_id: if len(raw_data['deck_list']) < deck_id:
return f'你没有第{deck_id}套卡组!' return f'你没有第{deck_id}套卡组!'
raw_data = raw_data['deck_list'][deck_id - 1] raw_data = raw_data['deck_list'][deck_id - 1]

View File

@ -3,7 +3,7 @@ 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.error_reply import get_error from gsuid_core.utils.error_reply import get_error_img
from ..utils.mys_api import mys_api from ..utils.mys_api import mys_api
from ..utils.image.convert import convert_img from ..utils.image.convert import convert_img
@ -31,7 +31,7 @@ async def draw_gcg_info(uid: str) -> Union[bytes, str]:
# 获得数据 # 获得数据
raw_data = await mys_api.get_gcg_info(uid) raw_data = await mys_api.get_gcg_info(uid)
if isinstance(raw_data, int): if isinstance(raw_data, int):
return get_error(raw_data) return await get_error_img(raw_data)
if raw_data['covers'] == []: if raw_data['covers'] == []:
return f'UID{uid}还没有开启七圣召唤玩法 或 未去米游社激活数据!' return f'UID{uid}还没有开启七圣召唤玩法 或 未去米游社激活数据!'

View File

@ -3,7 +3,7 @@ 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.error_reply import get_error from gsuid_core.utils.error_reply import get_error_img
from ..utils.mys_api import mys_api from ..utils.mys_api import mys_api
from ..utils.image.convert import convert_img from ..utils.image.convert import convert_img
@ -41,7 +41,7 @@ async def draw_note_img(uid: str) -> Union[bytes, str]:
# 获取数据 # 获取数据
data = await mys_api.get_award(uid) data = await mys_api.get_award(uid)
if isinstance(data, int): if isinstance(data, int):
return get_error(data) return await get_error_img(data)
# nickname = data['nickname'] # nickname = data['nickname']
day_stone = data['day_data']['current_primogems'] day_stone = data['day_data']['current_primogems']
day_mora = data['day_data']['current_mora'] day_mora = data['day_data']['current_mora']

View File

@ -1,4 +1,6 @@
from gsuid_core.utils.error_reply import get_error from typing import Union
from gsuid_core.utils.error_reply import get_error_img
from ..utils.mys_api import mys_api from ..utils.mys_api import mys_api
@ -23,10 +25,10 @@ UID{}
{}==============""" {}=============="""
async def award(uid) -> str: async def award(uid) -> Union[str, bytes]:
data = await mys_api.get_award(uid) data = await mys_api.get_award(uid)
if isinstance(data, int): if isinstance(data, int):
return get_error(data) return await get_error_img(data)
nickname = data['nickname'] nickname = data['nickname']
day_stone = data['day_data']['current_primogems'] day_stone = data['day_data']['current_primogems']
day_mora = data['day_data']['current_mora'] day_mora = data['day_data']['current_mora']

View File

@ -1,17 +1,19 @@
from gsuid_core.utils.error_reply import get_error from typing import Union
from gsuid_core.utils.error_reply import get_error_img
from ..utils.mys_api import mys_api from ..utils.mys_api import mys_api
async def post_my_draw(uid) -> str: async def post_my_draw(uid) -> Union[str, bytes]:
bs_index = await mys_api.get_bs_index(uid) bs_index = await mys_api.get_bs_index(uid)
calendar = await mys_api.get_draw_calendar(uid) calendar = await mys_api.get_draw_calendar(uid)
# 错误检查 # 错误检查
if isinstance(bs_index, int): if isinstance(bs_index, int):
return get_error(bs_index) return await get_error_img(bs_index)
if isinstance(calendar, int): if isinstance(calendar, int):
return get_error(calendar) return await get_error_img(calendar)
im_list = [] im_list = []
@ -19,7 +21,7 @@ async def post_my_draw(uid) -> str:
if not role['is_partake']: if not role['is_partake']:
data = await mys_api.post_draw(uid, role['role_id']) data = await mys_api.post_draw(uid, role['role_id'])
if isinstance(data, int): if isinstance(data, int):
im_list.append(get_error(data)) im_list.append(await get_error_img(data))
else: else:
retcode = data['retcode'] retcode = data['retcode']
if retcode != 0: if retcode != 0:

View File

@ -1,8 +1,8 @@
import math import math
from typing import List from typing import List, Union
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_img
from ..utils.mys_api import mys_api from ..utils.mys_api import mys_api
from ..utils.map.name_covert import avatar_id_to_name, enName_to_avatarId from ..utils.map.name_covert import avatar_id_to_name, enName_to_avatarId
@ -25,11 +25,11 @@ def seconds2hours(seconds: int) -> str:
return '%02d:%02d:%02d' % (h, m, s) return '%02d:%02d:%02d' % (h, m, s)
async def get_resin_text(uid: str) -> str: async def get_resin_text(uid: str) -> Union[str, bytes]:
try: try:
dailydata = await mys_api.get_daily_data(uid) dailydata = await mys_api.get_daily_data(uid)
if isinstance(dailydata, int): if isinstance(dailydata, int):
return get_error(dailydata) return await get_error_img(dailydata)
max_resin = dailydata['max_resin'] max_resin = dailydata['max_resin']
rec_time = '' rec_time = ''
current_resin = dailydata['current_resin'] current_resin = dailydata['current_resin']

View File

@ -3,7 +3,7 @@ from pathlib import Path
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_img
from gsuid_core.utils.api.mys.models import MihoyoAvatar from gsuid_core.utils.api.mys.models import MihoyoAvatar
from ..utils.mys_api import mys_api from ..utils.mys_api import mys_api
@ -145,7 +145,7 @@ async def draw_pic(uid: str):
char_rawdata = await mys_api.get_character(uid, char_ids, use_cookies) char_rawdata = await mys_api.get_character(uid, char_ids, use_cookies)
if isinstance(char_rawdata, int): if isinstance(char_rawdata, int):
return get_error(char_rawdata) return await get_error_img(char_rawdata)
char_datas = char_rawdata['avatars'] char_datas = char_rawdata['avatars']
for index, i in enumerate(char_datas): for index, i in enumerate(char_datas):

View File

@ -1,18 +1,19 @@
import json import json
import time import time
from typing import Union
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_img
from ..utils.mys_api import mys_api from ..utils.mys_api import mys_api
async def calc_reg_time(uid: str) -> str: async def calc_reg_time(uid: str) -> Union[str, bytes]:
# 获得原始数据 # 获得原始数据
try: try:
raw_data = await mys_api.get_regtime_data(uid) raw_data = await mys_api.get_regtime_data(uid)
if isinstance(raw_data, int): if isinstance(raw_data, int):
return get_error(raw_data) return await get_error_img(raw_data)
# 获取时间戳 # 获取时间戳
reg_time = json.loads(raw_data['data'])['1'] reg_time = json.loads(raw_data['data'])['1']
# 转换为日期 # 转换为日期

View File

@ -2,7 +2,7 @@ import io
import base64 import base64
import asyncio import asyncio
import traceback import traceback
from typing import Literal from typing import Union, Literal
from time import strftime, localtime from time import strftime, localtime
import qrcode import qrcode
@ -10,8 +10,8 @@ from gsuid_core.bot import Bot
from qrcode import ERROR_CORRECT_L from qrcode import ERROR_CORRECT_L
from gsuid_core.logger import logger from gsuid_core.logger import logger
from gsuid_core.segment import MessageSegment from gsuid_core.segment import MessageSegment
from gsuid_core.utils.error_reply import get_error
from gsuid_core.utils.api.mys.models import MysOrder from gsuid_core.utils.api.mys.models import MysOrder
from gsuid_core.utils.error_reply import get_error_img
from ..utils.mys_api import mys_api from ..utils.mys_api import mys_api
from ..utils.database import get_sqla from ..utils.database import get_sqla
@ -90,13 +90,15 @@ def get_qrcode_base64(url: str):
return base64.b64encode(img_byte).decode() return base64.b64encode(img_byte).decode()
async def refresh(order: MysOrder, uid: str, order_id: str) -> str: async def refresh(
order: MysOrder, uid: str, order_id: str
) -> Union[str, bytes]:
times = 0 times = 0
while True: while True:
await asyncio.sleep(5) await asyncio.sleep(5)
order_status = await mys_api.check_order(order, uid) order_status = await mys_api.check_order(order, uid)
if isinstance(order_status, int): if isinstance(order_status, int):
return get_error(order_status) return await get_error_img(order_status)
if order_status['status'] != 900: if order_status['status'] != 900:
pass pass
else: else:
@ -120,7 +122,7 @@ async def topup_(
return await bot.send('未绑定米游社账号') return await bot.send('未绑定米游社账号')
fetchgoods_data = await mys_api.get_fetchgoods() fetchgoods_data = await mys_api.get_fetchgoods()
if isinstance(fetchgoods_data, int): if isinstance(fetchgoods_data, int):
return await bot.send(get_error(fetchgoods_data)) return await bot.send(await get_error_img(fetchgoods_data))
if goods_id < len(fetchgoods_data): if goods_id < len(fetchgoods_data):
goods_data = fetchgoods_data[goods_id] goods_data = fetchgoods_data[goods_id]
else: else:
@ -128,7 +130,7 @@ async def topup_(
order = await mys_api.topup(uid, goods_data, method) order = await mys_api.topup(uid, goods_data, method)
if isinstance(order, int): if isinstance(order, int):
logger.warning(f'[充值] {group_id} {user_id} 出错!') logger.warning(f'[充值] {group_id} {user_id} 出错!')
return await bot.send(get_error(order)) return await bot.send(await get_error_img(order))
try: try:
b64_data = get_qrcode_base64(order['encode_order']) b64_data = get_qrcode_base64(order['encode_order'])
img_b64decode = base64.b64decode(b64_data) img_b64decode = base64.b64decode(b64_data)

View File

@ -3,7 +3,7 @@ from typing import Tuple, Union
import aiofiles import aiofiles
from PIL import Image, ImageDraw from PIL import Image, ImageDraw
from gsuid_core.utils.error_reply import get_error from gsuid_core.utils.error_reply import get_error_img
from gsuid_core.utils.api.minigg.models import Artifact from gsuid_core.utils.api.minigg.models import Artifact
from gsuid_core.utils.api.minigg.request import get_others_info from gsuid_core.utils.api.minigg.request import get_others_info
@ -41,7 +41,7 @@ async def get_base_img(y1: int, y2: int) -> Tuple[Image.Image, int]:
async def get_artifacts_wiki_img(name: str) -> Union[str, bytes]: async def get_artifacts_wiki_img(name: str) -> Union[str, bytes]:
data = await get_others_info('artifacts', name) data = await get_others_info('artifacts', name)
if isinstance(data, int): if isinstance(data, int):
return get_error(data) return await get_error_img(data)
else: else:
art_name = data['name'] art_name = data['name']
path = WIKI_REL_PATH / f'{art_name}.jpg' path = WIKI_REL_PATH / f'{art_name}.jpg'

View File

@ -2,7 +2,7 @@ from typing import Dict, List, Tuple, Union
import aiofiles import aiofiles
from PIL import Image, ImageDraw from PIL import Image, ImageDraw
from gsuid_core.utils.error_reply import get_error from gsuid_core.utils.error_reply import get_error_img
from gsuid_core.utils.api.minigg.request import ( from gsuid_core.utils.api.minigg.request import (
get_character_info, get_character_info,
get_constellation_info, get_constellation_info,
@ -50,11 +50,11 @@ async def get_constellation_wiki_img(name: str) -> Union[str, bytes]:
data = await get_constellation_info(name) data = await get_constellation_info(name)
char_data = await get_character_info(name) char_data = await get_character_info(name)
if isinstance(data, int): if isinstance(data, int):
return get_error(data) return await get_error_img(data)
elif isinstance(char_data, int): elif isinstance(char_data, int):
return get_error(char_data) return await get_error_img(char_data)
elif isinstance(char_data, List): elif isinstance(char_data, List):
return get_error(-400) return await get_error_img(-400)
else: else:
full_name = data['name'] full_name = data['name']
path = CONSTELLATION_PATH / f'{full_name}.jpg' path = CONSTELLATION_PATH / f'{full_name}.jpg'
@ -70,7 +70,7 @@ async def get_single_constellation_img(
) -> Union[str, bytes]: ) -> Union[str, bytes]:
data = await get_constellation_info(name) data = await get_constellation_info(name)
if isinstance(data, int): if isinstance(data, int):
return get_error(data) return await get_error_img(data)
else: else:
full_name = data['name'] full_name = data['name']
path = CONSTELLATION_PATH / f'{full_name}_{num}.jpg' path = CONSTELLATION_PATH / f'{full_name}_{num}.jpg'

View File

@ -2,7 +2,7 @@ from typing import Dict, List, Tuple, Union
import aiofiles import aiofiles
from PIL import Image, ImageDraw from PIL import Image, ImageDraw
from gsuid_core.utils.error_reply import get_error from gsuid_core.utils.error_reply import get_error_img
from gsuid_core.utils.api.minigg.models import Character, CharacterTalents from gsuid_core.utils.api.minigg.models import Character, CharacterTalents
from gsuid_core.utils.api.minigg.request import ( from gsuid_core.utils.api.minigg.request import (
get_others_info, get_others_info,
@ -16,6 +16,12 @@ from ..utils.get_assets import get_assets_from_ambr
from ..utils.map.name_covert import name_to_avatar_id from ..utils.map.name_covert import name_to_avatar_id
from ..utils.image.convert import str_lenth, convert_img from ..utils.image.convert import str_lenth, convert_img
from ..utils.resource.RESOURCE_PATH import CHAR_PATH, WIKI_COST_CHAR_PATH from ..utils.resource.RESOURCE_PATH import CHAR_PATH, WIKI_COST_CHAR_PATH
from ..utils.image.image_tools import (
get_star_png,
get_simple_bg,
get_unknown_png,
draw_pic_with_ring,
)
from ..utils.fonts.genshin_fonts import ( from ..utils.fonts.genshin_fonts import (
gs_font_24, gs_font_24,
gs_font_26, gs_font_26,
@ -23,23 +29,17 @@ from ..utils.fonts.genshin_fonts import (
gs_font_36, gs_font_36,
gs_font_44, gs_font_44,
) )
from ..utils.image.image_tools import (
get_star_png,
get_simple_bg,
get_unknown_png,
draw_pic_with_ring,
)
async def get_char_cost_wiki_img(name: str) -> Union[str, bytes]: async def get_char_cost_wiki_img(name: str) -> Union[str, bytes]:
data = await get_character_info(name) data = await get_character_info(name)
talent_data = await get_talent_info(name) talent_data = await get_talent_info(name)
if isinstance(data, int): if isinstance(data, int):
return get_error(data) return await get_error_img(data)
elif isinstance(data, List): elif isinstance(data, List):
return get_error(-400) return await get_error_img(-400)
elif isinstance(talent_data, int): elif isinstance(talent_data, int):
return get_error(talent_data) return await get_error_img(talent_data)
else: else:
char_name = talent_data['name'] char_name = talent_data['name']
path = WIKI_COST_CHAR_PATH / f'{char_name}.jpg' path = WIKI_COST_CHAR_PATH / f'{char_name}.jpg'

View File

@ -2,8 +2,8 @@ from typing import List, Union
import aiofiles import aiofiles
from PIL import Image, ImageDraw from PIL import Image, ImageDraw
from gsuid_core.utils.error_reply import get_error
from gsuid_core.utils.api.minigg.models import Food from gsuid_core.utils.api.minigg.models import Food
from gsuid_core.utils.error_reply import get_error_img
from gsuid_core.utils.api.minigg.request import get_others_info from gsuid_core.utils.api.minigg.request import get_others_info
from .path import TEXT_PATH from .path import TEXT_PATH
@ -27,9 +27,9 @@ from ..utils.fonts.genshin_fonts import (
async def get_foods_wiki_img(name: str) -> Union[str, bytes]: async def get_foods_wiki_img(name: str) -> Union[str, bytes]:
data = await get_others_info('foods', name) data = await get_others_info('foods', name)
if isinstance(data, int): if isinstance(data, int):
return get_error(data) return await get_error_img(data)
elif isinstance(data, List): elif isinstance(data, List):
return get_error(-400) return await get_error_img(-400)
else: else:
food_name = data['name'] food_name = data['name']
path = WIKI_FOOD_PATH / f'{food_name}.jpg' path = WIKI_FOOD_PATH / f'{food_name}.jpg'

View File

@ -3,7 +3,7 @@ from typing import Dict, List, Union
import aiofiles import aiofiles
from PIL import Image, ImageDraw from PIL import Image, ImageDraw
from gsuid_core.utils.error_reply import get_error from gsuid_core.utils.error_reply import get_error_img
from gsuid_core.utils.api.minigg.models import Weapon, WeaponStats from gsuid_core.utils.api.minigg.models import Weapon, WeaponStats
from gsuid_core.utils.api.minigg.request import ( from gsuid_core.utils.api.minigg.request import (
get_others_info, get_others_info,
@ -33,9 +33,9 @@ from ..utils.fonts.genshin_fonts import (
async def get_weapons_wiki_img(name: str) -> Union[str, bytes]: async def get_weapons_wiki_img(name: str) -> Union[str, bytes]:
data = await get_weapon_info(name) data = await get_weapon_info(name)
if isinstance(data, int): if isinstance(data, int):
return get_error(data) return await get_error_img(data)
elif isinstance(data, List): elif isinstance(data, List):
return get_error(-400) return await get_error_img(-400)
else: else:
if int(data['rarity']) < 3: if int(data['rarity']) < 3:
stats = await get_weapon_stats(name, 70) stats = await get_weapon_stats(name, 70)
@ -43,9 +43,9 @@ async def get_weapons_wiki_img(name: str) -> Union[str, bytes]:
stats = await get_weapon_stats(name, 90) stats = await get_weapon_stats(name, 90)
if isinstance(stats, int): if isinstance(stats, int):
return get_error(stats) return await get_error_img(stats)
elif isinstance(stats, List): elif isinstance(stats, List):
return get_error(-400) return await get_error_img(-400)
else: else:
weapon_name = data['name'] weapon_name = data['name']
path = WIKI_WEAPON_PATH / f'{weapon_name}.jpg' path = WIKI_WEAPON_PATH / f'{weapon_name}.jpg'