🐛 修改缺失的传参的重复调用

This commit is contained in:
Wuyi无疑 2023-03-05 21:54:42 +08:00
parent e6db065d5d
commit 5107fc4a09
17 changed files with 69 additions and 65 deletions

View File

@ -19,7 +19,7 @@ async def daily_refresh_charData():
@SV('数据管理', pm=2).on_fullmatch(('gs清除缓存'))
async def send_backup_msg(bot: Bot):
async def send_backup_msg(bot: Bot, ev: Event):
await data_backup()
await bot.send('操作成功完成!')

View File

@ -54,8 +54,8 @@ async def draw_config_img(bot_id: str) -> Union[bytes, str]:
index = 0
for name in CONIFG_DEFAULT:
if isinstance(CONIFG_DEFAULT[name].data, bool):
index += 1
tasks.append(_draw_config_line(img, name, index))
index += 1
await asyncio.gather(*tasks)
res = await convert_img(img)
@ -69,7 +69,8 @@ async def _draw_config_line(img: Image.Image, name: str, index: int):
config_line_draw = ImageDraw.Draw(config_line)
if name.startswith('定时'):
name += '(全部)'
config_line_draw.text((52, 46), name, first_color, gs_font_36, 'lm')
title = CONIFG_DEFAULT[name].title
config_line_draw.text((52, 46), title, first_color, gs_font_36, 'lm')
config_line_draw.text((52, 80), detail, second_color, gs_font_24, 'lm')
if CONIFG_DEFAULT[name].data:
config_line.paste(config_on, (613, 21), config_on)

View File

@ -14,7 +14,7 @@ from .draw_char_rank import draw_cahrcard_list
@SV('面板设置', pm=2).on_fullmatch('切换api')
async def send_change_api_info(bot: Bot):
async def send_change_api_info(bot: Bot, ev: Event):
await bot.send(await switch_api())
@ -22,6 +22,8 @@ async def send_change_api_info(bot: Bot):
async def send_char_info(bot: Bot, ev: Event):
# 获取角色名
msg = ''.join(re.findall('[\u4e00-\u9fa5]', ev.text))
if not msg:
return
await bot.logger.info('开始执行[查询角色面板]')
# 获取uid
uid = await get_uid(bot, ev)

View File

@ -6,7 +6,6 @@ from nonebot.log import logger
from .Power import sp_prop
from ..etc.get_buff_list import get_buff_list
from ...genshinuid_config.gs_config import gsconfig
from ...gsuid_utils.api.minigg.models import MiniGGError
from ..etc.status_change import EXTRA_CHAR_LIST, STATUS_CHAR_LIST
from ..etc.MAP_PATH import ActionMAP, char_action, avatarName2SkillAdd
from ...utils.map.GS_MAP_PATH import avatarName2Weapon, avatarName2Element
@ -126,7 +125,7 @@ class Character:
if weapon:
weapon_info = deepcopy(baseWeaponInfo)
weapon_raw_data = await get_weapon_info(weapon)
if isinstance(weapon_raw_data, MiniGGError) or isinstance(
if isinstance(weapon_raw_data, int) or isinstance(
weapon_raw_data, List
):
weapon_raw_data = await convert_ambr_to_weapon(weapon)
@ -146,7 +145,7 @@ class Character:
weapon_level_data = await get_weapon_stats(weapon, 70)
weapon_info['weaponLevel'] = 70
weapon_info['promoteLevel'] = 4
if isinstance(weapon_level_data, MiniGGError) or isinstance(
if isinstance(weapon_level_data, int) or isinstance(
weapon_level_data, List
):
return {}
@ -258,14 +257,14 @@ class Character:
self.char_id = await name_to_avatar_id(char_name_covert)
if not self.char_id and char_name != '旅行者':
return {}
if isinstance(char_raw, MiniGGError) or isinstance(char_raw, List):
if isinstance(char_raw, int) or isinstance(char_raw, List):
char_raw = char_data = await convert_ambr_to_minigg(self.char_id)
else:
char_data = await get_character_stats(char_name_covert, char_level)
if (
isinstance(char_data, List)
or isinstance(char_data, MiniGGError)
or isinstance(char_data, int)
or char_data is None
):
return {}

View File

@ -5,7 +5,6 @@ from typing import List, Union, Literal, Optional
from ..utils.error_reply import UID_HINT
from ..gsuid_utils.api.enka.models import EnkaData
from ..utils.resource.RESOURCE_PATH import PLAYER_PATH
from ..gsuid_utils.api.minigg.models import MiniGGError
from ..gsuid_utils.api.enka.request import get_enka_info
from ..gsuid_utils.api.minigg.request import get_weapon_info
from ..utils.map.GS_MAP_PATH import (
@ -254,7 +253,7 @@ async def enka_to_dict(
# 武器特效须请求API
effect_raw = await get_weapon_info(weapon_info['weaponName'])
if not isinstance(effect_raw, List) and not isinstance(
effect_raw, MiniGGError
effect_raw, int
):
effect = effect_raw['effect'].format(
*effect_raw[

View File

@ -1,5 +1,6 @@
from gsuid_core.sv import SV
from gsuid_core.bot import Bot
from gsuid_core.models import Event
from gsuid_core.aps import scheduler
from ..utils.image.convert import convert_img
@ -12,12 +13,12 @@ async def draw_event():
@SV('活动列表').on_fullmatch('活动列表')
async def send_events(bot: Bot):
async def send_events(bot: Bot, ev: Event):
img = await get_event_img('EVENT')
await bot.send(await convert_img(img))
@SV('活动列表').on_fullmatch('卡池列表')
async def send_gachas(bot: Bot):
async def send_gachas(bot: Bot, ev: Event):
img = await get_event_img('GACHA')
await bot.send(await convert_img(img))

View File

@ -2,6 +2,7 @@ from pathlib import Path
from gsuid_core.sv import SV
from gsuid_core.bot import Bot
from gsuid_core.models import Event
from ..utils.image.convert import convert_img
@ -9,7 +10,7 @@ HELP_IMG = Path(__file__).parent / 'help.png'
@SV('原神帮助').on_fullmatch('gs帮助')
async def send_guide_pic(bot: Bot):
async def send_guide_pic(bot: Bot, ev: Event):
img = await convert_img(HELP_IMG)
await bot.logger.info('获得gs帮助图片成功')
await bot.send(img)

View File

@ -20,7 +20,7 @@ MAP_CHN_NAME = {
@SV('查询地图设置', pm=2).on_fullmatch(('切换地图'))
async def send_change_map_msg(bot: Bot):
async def send_change_map_msg(bot: Bot, ev: Event):
await bot.logger.info('[切换地图]正在执行...')
MAP_ID_LIST.append(MAP_ID_LIST[0])
MAP_ID_LIST.pop(0)

View File

@ -25,7 +25,7 @@ async def send_task_adv(bot: Bot, ev: Event):
@SV('娱乐功能').on_fullmatch(('抽表情'))
async def send_meme_card(bot: Bot):
async def send_meme_card(bot: Bot, ev: Event):
await bot.logger.info('开始执行[抽表情]')
await bot.send(await get_meme_img())

View File

@ -1,12 +1,13 @@
from gsuid_core.sv import SV
from gsuid_core.bot import Bot
from gsuid_core.models import Event
from gsuid_core.logger import logger
from ..utils.resource.download_all_resource import download_all_resource
@SV('下载资源', pm=2).on_fullmatch(('下载全部资源'))
async def send_download_resource_msg(bot: Bot):
async def send_download_resource_msg(bot: Bot, ev: Event):
await bot.send('正在开始下载~可能需要较久的时间!')
im = await download_all_resource()
await bot.send(im)

View File

@ -34,7 +34,7 @@ async def get_sign_func(bot: Bot, ev: Event):
@SV('原神签到', pm=2).on_fullmatch('全部重签')
async def recheck(bot: Bot):
async def recheck(bot: Bot, ev: Event):
await bot.logger.info('开始执行[全部重签]')
await bot.send('已开始执行')
await send_daily_sign()

View File

@ -44,7 +44,7 @@ async def send_restart_msg(bot: Bot, ev: Event):
@SV('Core更新记录').on_fullmatch(('更新记录'))
async def send_updatelog_msg(bot: Bot):
async def send_updatelog_msg(bot: Bot, ev: Event):
await bot.logger.info('正在执行[更新记录]...')
im = await draw_update_log_img(is_update=False)
await bot.send(im)

View File

@ -90,6 +90,6 @@ async def send_link_uid_msg(bot: Bot, ev: Event):
@SV('帮助').on_fullmatch(('ck帮助', '绑定帮助'))
async def send_ck_help(bot: Bot):
async def send_ck_help(bot: Bot, ev: Event):
msg_list = await get_ck_help()
await bot.send(MessageSegment.node(msg_list))

View File

@ -2,7 +2,6 @@ import re
import math
from typing import List, Union
from ..gsuid_utils.api.minigg.models import MiniGGError
from .get_wiki_template import food_im, weapon_im, artifacts_im, char_info_im
from ..gsuid_utils.api.minigg.request import (
get_others_info,
@ -19,7 +18,7 @@ from ..gsuid_utils.api.minigg.request import (
async def artifacts_wiki(name: str) -> str:
data = await get_others_info('artifacts', name)
if isinstance(data, MiniGGError):
if isinstance(data, int):
im = '该圣遗物不存在。'
else:
star = ''
@ -47,7 +46,7 @@ async def artifacts_wiki(name: str) -> str:
async def foods_wiki(name: str) -> str:
data = await get_others_info('foods', name)
if isinstance(data, MiniGGError):
if isinstance(data, int):
im = '该食物不存在。'
else:
ingredients = ''
@ -74,7 +73,7 @@ async def foods_wiki(name: str) -> str:
async def enemies_wiki(name: str) -> str:
data = await get_others_info('enemies', name)
if isinstance(data, MiniGGError):
if isinstance(data, int):
im = '该食物不存在。'
else:
reward = ''
@ -97,7 +96,7 @@ async def enemies_wiki(name: str) -> str:
async def weapon_wiki(name: str) -> str:
data = await get_weapon_info(name)
if isinstance(data, MiniGGError):
if isinstance(data, int):
im = '该武器不存在。'
elif isinstance(data, List):
im = ', '.join(data)
@ -138,7 +137,7 @@ async def weapon_wiki(name: str) -> str:
async def weapon_stats_wiki(name: str, stats: int):
data = await get_weapon_info(name)
data2 = await get_weapon_stats(name, stats)
if isinstance(data, MiniGGError) or isinstance(data2, MiniGGError):
if isinstance(data, int) or isinstance(data2, int):
im = '该武器不存在。'
elif isinstance(data, List) or isinstance(data2, List):
im = '请输入具体的武器名称...'
@ -172,7 +171,7 @@ async def weapon_stats_wiki(name: str, stats: int):
async def weapon_costs_wiki(name: str) -> str:
data = await get_weapon_costs(name)
if isinstance(data, MiniGGError):
if isinstance(data, int):
im = '不存在该武器或类型。'
elif isinstance(data, List):
im = ', '.join(data)
@ -193,7 +192,7 @@ async def weapon_costs_wiki(name: str) -> str:
async def char_wiki(name: str) -> str:
data = await get_character_info(name)
if isinstance(data, MiniGGError):
if isinstance(data, int):
im = '不存在该角色或类型。'
elif isinstance(data, List):
im = ', '.join(data)
@ -216,7 +215,7 @@ async def char_wiki(name: str) -> str:
async def char_stats_wiki(name: str, stats: int):
data2 = await get_character_info(name)
data = await get_character_stats(name, stats)
if isinstance(data, MiniGGError) or isinstance(data2, MiniGGError):
if isinstance(data, int) or isinstance(data2, int):
im = '该角色不存在。'
elif isinstance(data, List) or isinstance(data2, List):
im = '请输入具体的角色名称...'
@ -245,7 +244,7 @@ async def char_stats_wiki(name: str, stats: int):
async def char_costs_wiki(name: str) -> str:
data = await get_character_costs(name)
data2 = await get_talent_info(name)
if isinstance(data, MiniGGError) or isinstance(data2, MiniGGError):
if isinstance(data, int) or isinstance(data2, int):
im = '该角色不存在。'
elif isinstance(data, List) or isinstance(data2, List):
im = '请输入具体的角色名称...'
@ -284,7 +283,7 @@ async def char_costs_wiki(name: str) -> str:
async def constellation_wiki(name: str, c: int) -> str:
data = await get_constellation_info(name)
if isinstance(data, MiniGGError):
if isinstance(data, int):
im = '该角色不存在。'
else:
im = (
@ -300,7 +299,7 @@ async def constellation_wiki(name: str, c: int) -> str:
async def talent_wiki(name: str, level: int) -> Union[List, str]:
data = await get_talent_info(name)
if isinstance(data, MiniGGError):
if isinstance(data, int):
im = '该角色不存在。'
else:
if int(level) <= 3:

View File

@ -3,6 +3,7 @@ import asyncio
from gsuid_core.sv import SV
from gsuid_core.bot import Bot
from gsuid_core.models import Event
from gsuid_core.aps import scheduler
from ..utils.image.convert import convert_img
@ -16,7 +17,7 @@ async def scheduled_draw_abyss():
@SV('查询深渊数据库').on_fullmatch(('深渊概览', '深渊统计', '深渊使用率'))
async def send_abyss_pic(bot: Bot):
async def send_abyss_pic(bot: Bot, ev: Event):
img = await convert_img(TOTAL_IMG)
await bot.logger.info('获得gs帮助图片成功!')
await bot.send(img)

View File

@ -22,7 +22,6 @@ from .models import (
Artifact,
Material,
Character,
MiniGGError,
WeaponStats,
CharacterStats,
CharacterTalents,
@ -141,7 +140,7 @@ async def minigg_request(
result_languages: APILanguages = APILanguages.CHS,
match_categories: bool = False,
**kwargs: Any,
) -> Union[AnyDict, List[str], MiniGGError]:
) -> Union[AnyDict, List[str], int]:
'''请求 MiniGG API。
Args:
@ -171,7 +170,8 @@ async def minigg_request(
req = await client.get(endpoint, params=params)
data = req.json()
if 'retcode' in data:
return cast(MiniGGError, data)
retcode: int = data['retcode']
return retcode
if req.status_code == 404:
raise MiniggNotFoundError(**data)
return data
@ -181,7 +181,7 @@ async def get_weapon_info(
name: str,
query_languages: APILanguages = APILanguages.CHS,
result_languages: APILanguages = APILanguages.CHS,
) -> Union[Weapon, List[str], MiniGGError]:
) -> Union[Weapon, List[str], int]:
'''获取武器信息
Args:
@ -202,7 +202,7 @@ async def get_weapon_info(
query_languages=query_languages,
result_languages=result_languages,
)
if isinstance(data, MiniGGError):
if isinstance(data, int):
return data
elif isinstance(data, Dict):
data = cast(Weapon, data)
@ -213,7 +213,7 @@ async def get_weapon_costs(
name: str,
query_languages: APILanguages = APILanguages.CHS,
result_languages: APILanguages = APILanguages.CHS,
) -> Union[Weapon, List[str], MiniGGError]:
) -> Union[Weapon, List[str], int]:
'''获取武器信息(花费)
Args:
@ -234,7 +234,7 @@ async def get_weapon_costs(
result_languages=result_languages,
costs=True,
)
if isinstance(data, MiniGGError):
if isinstance(data, int):
return data
elif isinstance(data, Dict):
data = cast(Weapon, data)
@ -246,7 +246,7 @@ async def get_weapon_stats(
stats: int,
query_languages: APILanguages = APILanguages.CHS,
result_languages: APILanguages = APILanguages.CHS,
) -> Union[WeaponStats, List[str], MiniGGError]:
) -> Union[WeaponStats, List[str], int]:
'''_summary_
Args:
@ -272,7 +272,7 @@ async def get_weapon_stats(
result_languages=result_languages,
stats=stats,
)
if isinstance(data, MiniGGError):
if isinstance(data, int):
return data
elif isinstance(data, Dict):
data = cast(WeaponStats, data)
@ -283,14 +283,14 @@ async def get_character_info(
name: str,
query_languages: APILanguages = APILanguages.CHS,
result_languages: APILanguages = APILanguages.CHS,
) -> Union[Character, List[str], MiniGGError]:
) -> Union[Character, List[str], int]:
data = await minigg_request(
'/characters',
name,
query_languages=query_languages,
result_languages=result_languages,
)
if isinstance(data, MiniGGError):
if isinstance(data, int):
return data
elif isinstance(data, Dict):
data = cast(Character, data)
@ -301,7 +301,7 @@ async def get_character_costs(
name: str,
query_languages: APILanguages = APILanguages.CHS,
result_languages: APILanguages = APILanguages.CHS,
) -> Union[Costs, MiniGGError]:
) -> Union[Costs, int]:
data = await minigg_request(
'/characters',
name,
@ -309,12 +309,12 @@ async def get_character_costs(
result_languages=result_languages,
Costs=True,
)
if isinstance(data, MiniGGError):
if isinstance(data, int):
return data
elif isinstance(data, Dict):
return cast(Costs, data)
else:
return MiniGGError(retcode=-1, error='未知错误')
return -1
async def get_character_stats(
@ -322,7 +322,7 @@ async def get_character_stats(
stats: int,
query_languages: APILanguages = APILanguages.CHS,
result_languages: APILanguages = APILanguages.CHS,
) -> Union[CharacterStats, MiniGGError]:
) -> Union[CharacterStats, int]:
if stats > 90 or stats <= 0:
raise ValueError('stats must <= 90 and > 0')
@ -333,12 +333,12 @@ async def get_character_stats(
result_languages=result_languages,
stats=stats,
)
if isinstance(data, MiniGGError):
if isinstance(data, int):
return data
elif isinstance(data, Dict):
return cast(CharacterStats, data)
else:
return MiniGGError(retcode=-1, error='未知错误')
return -1
async def get_constellation_info(
@ -346,7 +346,7 @@ async def get_constellation_info(
c: Optional[int] = None,
query_languages: APILanguages = APILanguages.CHS,
result_languages: APILanguages = APILanguages.CHS,
) -> Union[CharacterConstellations, MiniGGError]:
) -> Union[CharacterConstellations, int]:
if c and (c > 6 or c <= 0):
raise ValueError('c must <= 6 and > 0')
@ -357,65 +357,65 @@ async def get_constellation_info(
result_languages=result_languages,
c=c,
)
if isinstance(data, MiniGGError):
if isinstance(data, int):
return data
elif isinstance(data, Dict):
return cast(CharacterConstellations, data)
else:
return MiniGGError(retcode=-1, error='未知错误')
return -1
async def get_talent_info(
name: str,
query_languages: APILanguages = APILanguages.CHS,
result_languages: APILanguages = APILanguages.CHS,
) -> Union[CharacterTalents, MiniGGError]:
) -> Union[CharacterTalents, int]:
data = await minigg_request(
'/talents',
name,
query_languages=query_languages,
result_languages=result_languages,
)
if isinstance(data, MiniGGError):
if isinstance(data, int):
return data
elif isinstance(data, Dict):
return cast(CharacterTalents, data)
else:
return MiniGGError(retcode=-1, error='未知错误')
return -1
@overload
async def get_others_info(
type: Literal['foods'], name: str
) -> Union[Food, MiniGGError]:
) -> Union[Food, int]:
...
@overload
async def get_others_info(
type: Literal['enemies'], name: str
) -> Union[Enemy, MiniGGError]:
) -> Union[Enemy, int]:
...
@overload
async def get_others_info(
type: Literal['domains'], name: str
) -> Union[Domain, MiniGGError]:
) -> Union[Domain, int]:
...
@overload
async def get_others_info(
type: Literal['artifacts'], name: str
) -> Union[Artifact, MiniGGError]:
) -> Union[Artifact, int]:
...
@overload
async def get_others_info(
type: Literal['materials'], name: str
) -> Union[Material, MiniGGError]:
) -> Union[Material, int]:
...
@ -424,14 +424,14 @@ async def get_others_info(
name: str,
query_languages: APILanguages = APILanguages.CHS,
result_languages: APILanguages = APILanguages.CHS,
) -> Union[Food, Material, Domain, Artifact, Enemy, MiniGGError]:
) -> Union[Food, Material, Domain, Artifact, Enemy, int]:
data = await minigg_request(
f'/{type}',
name,
query_languages=query_languages,
result_languages=result_languages,
)
if isinstance(data, MiniGGError):
if isinstance(data, int):
return data
elif isinstance(data, Dict):
if type == 'foods':
@ -445,4 +445,4 @@ async def get_others_info(
elif type == 'enemies':
return cast(Enemy, data)
else:
return MiniGGError(retcode=-1, error='未知错误')
return -1

View File

@ -13,7 +13,7 @@ class _MysApi(MysApi):
# 警告使用该服务例如某RR等需要注意风险问题
# 本项目不以任何形式提供相关接口
# 代码来源GITHUB项目MIT开源
_pass_api = gsconfig.get_config('_pass_API')
_pass_api = gsconfig.get_config('_pass_API').data
if _pass_api:
data = await self._mys_request(
url=f'{_pass_api}&gt={gt}&challenge={ch}',