From 7653a3b70581fbe10a82ef2200174dee57695574 Mon Sep 17 00:00:00 2001 From: qwerdvd <105906879+qwerdvd@users.noreply.github.com> Date: Mon, 4 Dec 2023 12:49:55 +0800 Subject: [PATCH] ruff format --- ArknightsUID/arknightsuid_ap/draw_ap_card.py | 5 +- ArknightsUID/arknightsuid_ap/notice.py | 4 +- ArknightsUID/arknightsuid_ap/utils.py | 2 +- ArknightsUID/arknightsuid_config/__init__.py | 26 +-- .../arknightsuid_config/set_config.py | 55 +++--- ArknightsUID/arknightsuid_help/get_help.py | 8 +- ArknightsUID/arknightsuid_mind/__init__.py | 137 ++++++++++++++ .../arknightsuid_resource/__init__.py | 16 +- .../arknightsuid_resource/constants.py | 178 +++++------------- .../arknightsuid_resource/memoryStore.py | 10 +- .../draw_roleinfo_card.py | 7 +- ArknightsUID/arknightsuid_signin/sign.py | 4 +- ArknightsUID/arknightsuid_start/start.py | 1 + ArknightsUID/arknightsuid_user/__init__.py | 4 +- .../arknightsuid_user/deal_skd_cred.py | 7 +- ArknightsUID/arknightsuid_wiki/__init__.py | 9 +- .../arknightsuid_wiki/draw_wiki_img.py | 131 +++++-------- ArknightsUID/utils/api/skd/request.py | 70 ++++--- ArknightsUID/utils/database/models.py | 34 ++-- ArknightsUID/utils/error_reply.py | 1 + ArknightsUID/utils/models/common.py | 7 +- .../utils/models/gamedata/ActivityTable.py | 110 +++++------ .../utils/models/gamedata/AudioData.py | 4 +- .../utils/models/gamedata/BattleEquipTable.py | 2 +- .../utils/models/gamedata/BuildingData.py | 58 +++--- .../utils/models/gamedata/CampaignTable.py | 28 +-- .../utils/models/gamedata/ChapterTable.py | 2 +- .../utils/models/gamedata/CharMetaTable.py | 6 +- .../utils/models/gamedata/CharPatchTable.py | 10 +- .../utils/models/gamedata/CharacterTable.py | 10 +- .../utils/models/gamedata/CharmTable.py | 6 +- .../utils/models/gamedata/CharwordTable.py | 4 +- .../utils/models/gamedata/CheckinTable.py | 6 +- .../utils/models/gamedata/ClimbTowerTable.py | 50 ++--- .../utils/models/gamedata/ClueData.py | 2 +- .../utils/models/gamedata/CrisisTable.py | 6 +- .../utils/models/gamedata/CrisisV2Table.py | 20 +- .../utils/models/gamedata/DisplayMetaTable.py | 8 +- .../models/gamedata/EnemyHandbookTable.py | 10 +- .../utils/models/gamedata/FavorTable.py | 2 +- .../utils/models/gamedata/GachaTable.py | 6 +- .../utils/models/gamedata/GamedataConst.py | 6 +- .../models/gamedata/HandbookInfoTable.py | 10 +- .../utils/models/gamedata/HandbookTable.py | 2 +- .../models/gamedata/HandbookTeamTable.py | 2 +- .../utils/models/gamedata/ItemTable.py | 12 +- .../utils/models/gamedata/MedalTable.py | 8 +- .../utils/models/gamedata/MissionTable.py | 22 +-- .../utils/models/gamedata/OpenServerTable.py | 28 +-- .../models/gamedata/PlayerAvatarTable.py | 2 +- .../utils/models/gamedata/RangeTable.py | 4 +- .../utils/models/gamedata/ReplicateTable.py | 6 +- .../utils/models/gamedata/RetroTable.py | 26 +-- .../utils/models/gamedata/RoguelikeTable.py | 28 +-- .../models/gamedata/RoguelikeTopicTable.py | 60 +++--- .../utils/models/gamedata/SandboxTable.py | 14 +- .../utils/models/gamedata/ShopClientTable.py | 6 +- .../utils/models/gamedata/SkillTable.py | 6 +- .../utils/models/gamedata/SkinTable.py | 2 +- .../utils/models/gamedata/StageTable.py | 16 +- .../models/gamedata/StoryReviewMetaTable.py | 18 +- .../utils/models/gamedata/StoryReviewTable.py | 8 +- .../utils/models/gamedata/StoryTable.py | 10 +- .../utils/models/gamedata/TechBuffTable.py | 4 +- .../utils/models/gamedata/TipTable.py | 2 +- .../utils/models/gamedata/TokenTable.py | 10 +- .../utils/models/gamedata/UniequipData.py | 8 +- .../utils/models/gamedata/UniequipTable.py | 8 +- .../utils/models/gamedata/ZoneTable.py | 10 +- ArknightsUID/utils/models/gamedata/common.py | 22 ++- ArknightsUID/utils/models/skland/models.py | 12 +- ArknightsUID/utils/resource/RESOURCE_PATH.py | 3 +- ArknightsUID/version.py | 6 +- README.md | 5 +- pyproject.toml | 6 +- 75 files changed, 741 insertions(+), 717 deletions(-) create mode 100644 ArknightsUID/arknightsuid_mind/__init__.py diff --git a/ArknightsUID/arknightsuid_ap/draw_ap_card.py b/ArknightsUID/arknightsuid_ap/draw_ap_card.py index 90e6d2c..456f2ec 100644 --- a/ArknightsUID/arknightsuid_ap/draw_ap_card.py +++ b/ArknightsUID/arknightsuid_ap/draw_ap_card.py @@ -53,9 +53,7 @@ async def get_ap_img(bot_id: str, user_id: str): return '请先绑定一个可用CRED & UID再来查询哦~' # 开始绘图任务 task = [] - img = Image.new( - 'RGBA', (based_w * len(useable_uid_list), based_h), (0, 0, 0, 0) - ) + img = Image.new('RGBA', (based_w * len(useable_uid_list), based_h), (0, 0, 0, 0)) for uid_index, uid in enumerate(useable_uid_list): task.append(_draw_all_ap_img(img, uid, uid_index)) await asyncio.gather(*task) @@ -514,7 +512,6 @@ async def draw_ap_img(uid: str) -> Image.Image: ) img.paste(blue_bar_bg1_img, (-20, 1570), blue_bar_bg1_img) - img_draw = ImageDraw.Draw(img) img_draw.text( (425, 1710), diff --git a/ArknightsUID/arknightsuid_ap/notice.py b/ArknightsUID/arknightsuid_ap/notice.py index a76f9bc..16c84a1 100644 --- a/ArknightsUID/arknightsuid_ap/notice.py +++ b/ArknightsUID/arknightsuid_ap/notice.py @@ -1,4 +1,5 @@ from typing import Dict + from gsuid_core.gss import gss from gsuid_core.logger import logger @@ -52,7 +53,8 @@ async def all_check( if arkconfig.get_config('CrazyNotice').data: if not await check(mode, raw_data, push_data[f'{mode}_value']): await ArknightsPush.update_push_data( - uid, {f'{mode}_is_push': False} + uid, + {f'{mode}_is_push': False}, ) continue # 准备推送 diff --git a/ArknightsUID/arknightsuid_ap/utils.py b/ArknightsUID/arknightsuid_ap/utils.py index 14b4c40..eb6773b 100644 --- a/ArknightsUID/arknightsuid_ap/utils.py +++ b/ArknightsUID/arknightsuid_ap/utils.py @@ -11,5 +11,5 @@ def seconds2hours_zhcn(seconds: int) -> str: def now_ap(ap: PlayerStatusAp) -> int: - _ap = ap.current + math.floor((datetime.now().timestamp() - ap.lastApAddTime) / 360) + _ap = ap.current + math.floor((datetime.now().timestamp() - ap.lastApAddTime) / 360) return _ap if _ap <= ap.max else ap.max diff --git a/ArknightsUID/arknightsuid_config/__init__.py b/ArknightsUID/arknightsuid_config/__init__.py index 0b8d7b5..a349358 100644 --- a/ArknightsUID/arknightsuid_config/__init__.py +++ b/ArknightsUID/arknightsuid_config/__init__.py @@ -9,7 +9,7 @@ from gsuid_core.utils.error_reply import UID_HINT from ..utils.database.models import ArknightsBind from .set_config import set_config_func, set_push_value -sv_self_config = SV("ark配置") +sv_self_config = SV('ark配置') # @sv_self_config.on_fullmatch(("ark配置", "方舟配置")) @@ -19,46 +19,46 @@ sv_self_config = SV("ark配置") # await bot.send(im) -@sv_self_config.on_prefix(("ark设置")) # noqa: UP034 +@sv_self_config.on_prefix(('ark设置')) # noqa: UP034 async def send_config_ev(bot: Bot, ev: Event): - logger.info("开始执行[设置阈值信息]") + logger.info('开始执行[设置阈值信息]') uid = await ArknightsBind.get_uid_by_game(ev.user_id, bot.bot_id) if uid is None: return await bot.send(UID_HINT) - func = "".join(re.findall("[\u4e00-\u9fa5]", ev.text.replace("阈值", ""))) - value = re.findall(r"\d+", ev.text) + func = ''.join(re.findall('[\u4e00-\u9fa5]', ev.text.replace('阈值', ''))) + value = re.findall(r'\d+', ev.text) value = value[0] if value else None if value is None: - return await bot.send("请输入正确的阈值数字...") + return await bot.send('请输入正确的阈值数字...') - logger.info(f"[设置阈值信息]func: {func}, value: {value}") + logger.info(f'[设置阈值信息]func: {func}, value: {value}') im = await set_push_value(ev.bot_id, func, uid, int(value)) await bot.send(im) # 开启 自动签到 功能 -@sv_self_config.on_prefix(("ark开启", "ark关闭")) +@sv_self_config.on_prefix(('ark开启', 'ark关闭')) async def open_switch_func(bot: Bot, ev: Event): user_id = ev.user_id config_name = ev.text - logger.info(f"[{user_id}]尝试[{ev.command[2:]}]了[{ev.text}]功能") + logger.info(f'[{user_id}]尝试[{ev.command[2:]}]了[{ev.text}]功能') - if ev.command == "ark开启": + if ev.command == 'ark开启': query = True - gid = ev.group_id if ev.group_id else "on" + gid = ev.group_id if ev.group_id else 'on' else: query = False - gid = "off" + gid = 'off' is_admin = ev.user_pm <= 2 if ev.at and is_admin: user_id = ev.at elif ev.at: - return await bot.send("你没有权限...") + return await bot.send('你没有权限...') uid = await ArknightsBind.get_uid_by_game(ev.user_id, bot.bot_id) if uid is None: diff --git a/ArknightsUID/arknightsuid_config/set_config.py b/ArknightsUID/arknightsuid_config/set_config.py index 6e637e2..c54b320 100644 --- a/ArknightsUID/arknightsuid_config/set_config.py +++ b/ArknightsUID/arknightsuid_config/set_config.py @@ -7,12 +7,13 @@ from .ark_config import arkconfig from .config_default import CONIFG_DEFAULT PUSH_MAP = { - "理智": "ap", - "训练室": "train", + '理智': 'ap', + '训练室': 'train', + '版本更新': 'version', } PRIV_MAP = { - "自动签到": "sign", - "推送": "push", + '自动签到': 'sign', + '推送': 'push', } @@ -20,20 +21,20 @@ async def set_push_value(bot_id: str, func: str, uid: str, value: int): if func in PUSH_MAP: status = PUSH_MAP[func] else: - return "该配置项不存在!" - logger.info(f"[设置推送阈值]func: {status}, value: {value}") - if await ArknightsPush.update_push_data(uid, {f"{status}_value": value}): - return f"设置成功!\n当前{func}推送阈值:{value}" + return '该配置项不存在!' + logger.info(f'[设置推送阈值]func: {status}, value: {value}') + if await ArknightsPush.update_push_data(uid, {f'{status}_value': value}): + return f'设置成功!\n当前{func}推送阈值:{value}' else: - return "设置失败!\n请检查参数是否正确!" + return '设置失败!\n请检查参数是否正确!' async def set_config_func( bot_id: str, - config_name: str = "", - uid: str = "0", - user_id: str = "", - option: str = "0", + config_name: str = '', + uid: str = '0', + user_id: str = '', + option: str = '0', query: Optional[bool] = None, is_admin: bool = False, ): @@ -45,17 +46,17 @@ async def set_config_func( break else: logger.info( - f"uid: {uid}, option: {option}, config_name: {config_name}" + f'uid: {uid}, option: {option}, config_name: {config_name}', ) if config_name in PRIV_MAP: # 执行设置 await ArknightsUser.update_user_data( uid, { - f"{PRIV_MAP[config_name]}_switch": option, + f'{PRIV_MAP[config_name]}_switch': option, }, ) - elif config_name.replace("推送", "") in PUSH_MAP: + elif config_name.replace('推送', '') in PUSH_MAP: await ArknightsPush.update_push_data( uid, { @@ -63,24 +64,24 @@ async def set_config_func( }, ) else: - return "该配置项不存在!" + return '该配置项不存在!' - if option == "on": - succeed_msg = "开启至私聊消息!" - elif option == "off": - succeed_msg = "关闭!" + if option == 'on': + succeed_msg = '开启至私聊消息!' + elif option == 'off': + succeed_msg = '关闭!' else: - succeed_msg = f"开启至群{option}" - return f"{config_name}已{succeed_msg}" + succeed_msg = f'开启至群{option}' + return f'{config_name}已{succeed_msg}' if is_admin: - logger.info(f"config_name:{config_name},query:{query}") + logger.info(f'config_name:{config_name},query:{query}') # 执行设置 if query is not None: arkconfig.set_config(name, query) - im = "成功设置{}为{}。".format(config_name, "开" if query else "关") + im = '成功设置{}为{}。'.format(config_name, '开' if query else '关') else: - im = "未传入参数query!" + im = '未传入参数query!' else: - im = "只有管理员才能设置群服务。" + im = '只有管理员才能设置群服务。' return im diff --git a/ArknightsUID/arknightsuid_help/get_help.py b/ArknightsUID/arknightsuid_help/get_help.py index 2b79738..ab5e5cd 100644 --- a/ArknightsUID/arknightsuid_help/get_help.py +++ b/ArknightsUID/arknightsuid_help/get_help.py @@ -18,7 +18,8 @@ async def get_help_data() -> Union[Dict[str, PluginHelp], None]: if HELP_DATA.exists(): async with aiofiles.open(HELP_DATA, 'rb') as file: return msgjson.decode( - await file.read(), type=Dict[str, PluginHelp], + await file.read(), + type=Dict[str, PluginHelp], ) @@ -37,7 +38,8 @@ async def get_core_help() -> Union[bytes, str]: Image.open(TEXT_PATH / 'banner.png'), Image.open(TEXT_PATH / 'button.png'), source_han_sans_cn_origin, - extra_message = [f'Client Version:{Arknights_Client_version} ' - f' Res version: {Arknights_Res_version}'], + extra_message=[ + f'Client Version:{Arknights_Client_version} ' f' Res version: {Arknights_Res_version}' + ], ) return img diff --git a/ArknightsUID/arknightsuid_mind/__init__.py b/ArknightsUID/arknightsuid_mind/__init__.py new file mode 100644 index 0000000..c32966e --- /dev/null +++ b/ArknightsUID/arknightsuid_mind/__init__.py @@ -0,0 +1,137 @@ +# import asyncio +# import json +# from typing import Dict + +# import aiohttp +# from gsuid_core.aps import scheduler +# from gsuid_core.bot import Bot +# from gsuid_core.gss import gss +# from gsuid_core.logger import logger +# from gsuid_core.models import Event +# from gsuid_core.segment import MessageSegment +# from gsuid_core.sv import SV +# from msgspec import Struct, convert + +# from ..utils.ark_prefix import PREFIX +# from ..utils.database.models import ( +# ArknightsPush, +# ArknightsUser, +# ) +# from ..version import Arknights_Client_version, Arknights_Res_version + +# sv_get_version = SV('ark查询版本') +# sv_get_version_admin = SV('ark推送版本更新', pm=1) + + +# @sv_get_version_admin.on_fullmatch((f'{PREFIX}开启推送版本更新')) # noqa: UP034 +# async def force_version_job(bot: Bot, ev: Event): +# await bot.logger.info('开始执行[ark推送版本更新]') +# await ark_version_job() + + +# class ArkVersion(Struct): +# clientVersion: str +# resVersion: str + + +# async def get_notice_list(im: list[str]) -> Dict[str, Dict[str, Dict]]: +# msg_dict: Dict[str, Dict[str, Dict]] = {} +# for _bot_id in gss.active_bot: +# user_list = await ArknightsUser.get_all_push_user_list() +# print(user_list) +# for user in user_list: +# if user.uid is not None: +# push_data = await ArknightsPush.select_push_data(user.uid) +# print(push_data) +# if push_data is None: +# continue + +# if push_data.version_push is False: +# pass +# else: +# if user.bot_id not in msg_dict: +# msg_dict[user.bot_id] = {'direct': {}, 'group': {}} +# if push_data.version_push: +# # 添加私聊信息 +# if user.user_id not in msg_dict[user.bot_id]['direct']: +# msg_dict[user.bot_id]['direct'][user.user_id] = im +# else: +# msg_dict[user.bot_id]['direct'][user.user_id] += im +# await ArknightsPush.update_push_data( +# user.uid, {'version_is_push': True} +# ) +# # 群号推送到群聊 +# else: +# # 初始化 +# gid = push_data.version_push +# if gid not in msg_dict[user.bot_id]['group']: +# msg_dict[user.bot_id]['group'][gid] = {} + +# if ( +# user.user_id +# not in msg_dict[user.bot_id]['group'][gid] +# ): +# msg_dict[user.bot_id]['group'][gid][ +# user.user_id +# ] = im +# else: +# msg_dict[user.bot_id]['group'][gid][ +# user.user_id +# ] += im +# await ArknightsPush.update_push_data( +# user.uid, {'version_is_push': True} +# ) +# return msg_dict + + +# async def get_resVersion(): +# async with aiohttp.ClientSession() as session: +# async with session.get( +# "https://ak-conf.hypergryph.com/config/prod/official/Android/version" +# ) as response: +# version = convert(json.loads(await response.text()), ArkVersion) +# if ( +# version.clientVersion != Arknights_Client_version +# and version.resVersion != Arknights_Res_version +# ): +# im = [] +# im.append(MessageSegment.text("检测到明日方舟版本更新!")) +# im.append( +# MessageSegment.text(f"客户端版本号:{version.clientVersion}") +# ) +# im.append(MessageSegment.text(f"资源版本号:{version.resVersion}")) +# return im +# logger.info("Version no update") + + +# @scheduler.scheduled_job('interval', seconds=3) +# async def ark_version_job(): +# im = await get_resVersion() +# im = ['test'] +# if im is not None: +# result = await get_notice_list(im) +# logger.info('[ark更新检查]完成!等待消息推送中...') +# logger.debug(result) + +# # 执行私聊推送 +# for bot_id in result: +# for BOT_ID in gss.active_bot: +# bot = gss.active_bot[BOT_ID] +# for user_id in result[bot_id]['direct']: +# msg = result[bot_id]['direct'][user_id] +# await bot.target_send( +# msg, 'direct', user_id, bot_id, '', '' +# ) +# await asyncio.sleep(0.5) +# logger.info('[ark更新检查] 私聊推送完成') +# for gid in result[bot_id]['group']: +# msg_list = [] +# for user_id in result[bot_id]['group'][gid]: +# msg_list.append(MessageSegment.at(user_id)) +# msg = result[bot_id]['group'][gid][user_id] +# msg_list.append(MessageSegment.text(msg)) +# await bot.target_send( +# msg_list, 'group', gid, bot_id, '', '' +# ) +# await asyncio.sleep(0.5) +# logger.info('[ark更新检查] 群聊推送完成') diff --git a/ArknightsUID/arknightsuid_resource/__init__.py b/ArknightsUID/arknightsuid_resource/__init__.py index bc9a266..8c4397b 100644 --- a/ArknightsUID/arknightsuid_resource/__init__.py +++ b/ArknightsUID/arknightsuid_resource/__init__.py @@ -13,27 +13,25 @@ from gsuid_core.sv import SV from .constants import Excel from .memoryStore import store -sv_download_config = SV("下载资源", pm=2) +sv_download_config = SV('下载资源', pm=2) -@sv_download_config.on_fullmatch(("ark下载全部资源")) # noqa: UP034 +@sv_download_config.on_fullmatch(('ark下载全部资源')) # noqa: UP034 async def send_download_resource_msg(bot: Bot, ev: Event): - await bot.send("正在开始下载~可能需要较久的时间!") + await bot.send('正在开始下载~可能需要较久的时间!') im = await download_all_resource() await bot.send(im) async def startup(): - logger.info("[资源文件下载] 正在检查与下载缺失的资源文件, 可能需要较长时间, 请稍等") + logger.info('[资源文件下载] 正在检查与下载缺失的资源文件, 可能需要较长时间, 请稍等') await download_all_resource() - logger.info("[资源文件下载] 检查完毕, 正在加载 gamedata") + logger.info('[资源文件下载] 检查完毕, 正在加载 gamedata') TASK = [] - for file_path in Path( - get_res_path(["ArknightsUID", "resource", "gamedata"]) - ).glob("*.json"): + for file_path in Path(get_res_path(['ArknightsUID', 'resource', 'gamedata'])).glob('*.json'): TASK.append(store.get_file(file_path)) asyncio.gather(*TASK) await Excel.preload_table() - logger.info("[资源文件下载] gamedata 加载完毕") + logger.info('[资源文件下载] gamedata 加载完毕') diff --git a/ArknightsUID/arknightsuid_resource/constants.py b/ArknightsUID/arknightsuid_resource/constants.py index 10b687e..ddff457 100644 --- a/ArknightsUID/arknightsuid_resource/constants.py +++ b/ArknightsUID/arknightsuid_resource/constants.py @@ -103,18 +103,14 @@ class ExcelTableManager: zone_table_: ZoneTable async def activity_table(self) -> None: - self.activity_table_ = ActivityTable.convert( - await store.get_excel("activity_table") - ) + self.activity_table_ = ActivityTable.convert(await store.get_excel('activity_table')) @property def ACTIVITY_TABLE(self) -> ActivityTable: return self.activity_table_ async def audio_data(self) -> None: - self.audio_data_ = AudioData.convert( - await store.get_excel("audio_data") - ) + self.audio_data_ = AudioData.convert(await store.get_excel('audio_data')) @property def AUDIO_DATA(self) -> AudioData: @@ -122,7 +118,7 @@ class ExcelTableManager: async def battle_equip_table(self) -> None: self.battle_equip_table_ = BattleEquipTable.convert( - {"equips": await store.get_excel("battle_equip_table")} + {'equips': await store.get_excel('battle_equip_table')} ) @property @@ -130,124 +126,98 @@ class ExcelTableManager: return self.battle_equip_table_ async def building_data(self) -> None: - self.building_data_ = BuildingData.convert( - await store.get_excel("building_data") - ) + self.building_data_ = BuildingData.convert(await store.get_excel('building_data')) @property def BUILDING_DATA(self) -> BuildingData: return self.building_data_ async def campaign_table(self) -> None: - self.campaign_table_ = CampaignTable.convert( - await store.get_excel("campaign_table") - ) + self.campaign_table_ = CampaignTable.convert(await store.get_excel('campaign_table')) @property def CAMPAIGN_TABLE(self) -> CampaignTable: return self.campaign_table_ async def chapter_table(self) -> None: - self.chapter_table_ = ChapterTable.convert( - {"chapters": await store.get_excel("chapter_table")} - ) + self.chapter_table_ = ChapterTable.convert({'chapters': await store.get_excel('chapter_table')}) @property def CHAPTER_TABLE(self) -> ChapterTable: return self.chapter_table_ async def character_table(self) -> None: - self.character_table_ = CharacterTable.convert( - {"chars": await store.get_excel("character_table")} - ) + self.character_table_ = CharacterTable.convert({'chars': await store.get_excel('character_table')}) @property def CHARATER_TABLE(self) -> CharacterTable: return self.character_table_ async def char_meta_table(self) -> None: - self.char_meta_table_ = CharMetaTable.convert( - await store.get_excel("char_meta_table") - ) + self.char_meta_table_ = CharMetaTable.convert(await store.get_excel('char_meta_table')) @property def CHAR_META_TABLE(self) -> CharMetaTable: return self.char_meta_table_ async def charm_table(self) -> None: - self.charm_table_ = CharmTable.convert( - await store.get_excel("charm_table") - ) + self.charm_table_ = CharmTable.convert(await store.get_excel('charm_table')) @property def CHARM_TABLE(self) -> CharmTable: return self.charm_table_ async def char_patch_table(self) -> None: - self.char_patch_table_ = CharPatchTable.convert( - await store.get_excel("char_patch_table") - ) + self.char_patch_table_ = CharPatchTable.convert(await store.get_excel('char_patch_table')) @property def CHAR_PATH_TABLE(self) -> CharPatchTable: return self.char_patch_table_ async def charword_table(self) -> None: - self.charword_table_ = CharwordTable.convert( - await store.get_excel("charword_table") - ) + self.charword_table_ = CharwordTable.convert(await store.get_excel('charword_table')) @property def CHARWORD_TABLE(self) -> CharwordTable: return self.charword_table_ async def checkin_table(self) -> None: - self.checkin_table_ = CheckinTable.convert( - await store.get_excel("checkin_table") - ) + self.checkin_table_ = CheckinTable.convert(await store.get_excel('checkin_table')) @property def CHECKIN_TABLE(self) -> CheckinTable: return self.checkin_table_ async def climb_tower_table(self) -> None: - self.climb_tower_table_ = ClimbTowerTable.convert( - await store.get_excel("climb_tower_table") - ) + self.climb_tower_table_ = ClimbTowerTable.convert(await store.get_excel('climb_tower_table')) @property def CLIMB_TOWER_TABLE(self) -> ClimbTowerTable: return self.climb_tower_table_ async def clue_data(self) -> None: - self.clue_data_ = ClueData.convert(await store.get_excel("clue_data")) + self.clue_data_ = ClueData.convert(await store.get_excel('clue_data')) @property def CLUE_DATA(self) -> ClueData: return self.clue_data_ async def crisis_table(self) -> None: - self.crisis_table_ = CrisisTable.convert( - await store.get_excel("crisis_table") - ) + self.crisis_table_ = CrisisTable.convert(await store.get_excel('crisis_table')) @property def CRISIS_TABLE(self) -> CrisisTable: return self.crisis_table_ async def crisis_v2_table(self) -> None: - self.crisis_v2_table_ = CrisisV2Table.convert( - await store.get_excel("crisis_v2_table") - ) + self.crisis_v2_table_ = CrisisV2Table.convert(await store.get_excel('crisis_v2_table')) @property def CRISIS_V2_TABLE(self) -> CrisisV2Table: return self.crisis_v2_table_ async def display_meta_table(self) -> None: - self.display_meta_table_ = DisplayMetaTable.convert( - await store.get_excel("display_meta_table") - ) + self.display_meta_table_ = DisplayMetaTable.convert(await store.get_excel('display_meta_table')) @property def DISPLAY_META_TABLE(self) -> DisplayMetaTable: @@ -255,7 +225,7 @@ class ExcelTableManager: async def enemy_handbook_table(self) -> None: self.enemy_handbook_table_ = EnemyHandbookTable.convert( - await store.get_excel("enemy_handbook_table") + await store.get_excel('enemy_handbook_table') ) @property @@ -263,45 +233,35 @@ class ExcelTableManager: return self.enemy_handbook_table_ async def favor_table(self) -> None: - self.favor_table_ = FavorTable.convert( - await store.get_excel("favor_table") - ) + self.favor_table_ = FavorTable.convert(await store.get_excel('favor_table')) @property def FAVOR_TABLE(self) -> FavorTable: return self.favor_table_ async def gacha_table(self) -> None: - self.gacha_table_ = GachaTable.convert( - await store.get_excel("gacha_table") - ) + self.gacha_table_ = GachaTable.convert(await store.get_excel('gacha_table')) @property def GACHA_TABLE(self) -> GachaTable: return self.gacha_table_ async def gamedata_const(self) -> None: - self.gamedata_const_ = GamedataConst.convert( - await store.get_excel("gamedata_const") - ) + self.gamedata_const_ = GamedataConst.convert(await store.get_excel('gamedata_const')) @property def GAMEDATA_CONST(self) -> GamedataConst: return self.gamedata_const_ async def handbook_info_table(self) -> None: - self.handbook_info_table_ = HandbookInfoTable.convert( - await store.get_excel("handbook_info_table") - ) + self.handbook_info_table_ = HandbookInfoTable.convert(await store.get_excel('handbook_info_table')) @property def HANDBOOK_INFO_TABLE(self) -> HandbookInfoTable: return self.handbook_info_table_ async def handbook_table(self) -> None: - self.handbook_table_ = HandbookTable.convert( - await store.get_excel("handbook_table") - ) + self.handbook_table_ = HandbookTable.convert(await store.get_excel('handbook_table')) @property def HANDBOOK_TABLE(self) -> HandbookTable: @@ -309,7 +269,7 @@ class ExcelTableManager: async def handbook_team_table(self) -> None: self.handbook_team_table_ = HandbookTeamTable.convert( - {"team": await store.get_excel("handbook_team_table")} + {'team': await store.get_excel('handbook_team_table')} ) @property @@ -317,54 +277,42 @@ class ExcelTableManager: return self.handbook_team_table_ async def item_table(self) -> None: - self.item_table_ = ItemTable.convert( - await store.get_excel("item_table") - ) + self.item_table_ = ItemTable.convert(await store.get_excel('item_table')) @property def ITEM_TABLE(self) -> ItemTable: return self.item_table_ async def medal_table(self) -> None: - self.medal_table_ = MedalTable.convert( - await store.get_excel("medal_table") - ) + self.medal_table_ = MedalTable.convert(await store.get_excel('medal_table')) @property def MEDAL_TABLE(self) -> MedalTable: return self.medal_table_ async def mission_table(self) -> None: - self.mission_table_ = MissionTable.convert( - await store.get_excel("mission_table") - ) + self.mission_table_ = MissionTable.convert(await store.get_excel('mission_table')) @property def MISSION_TABLE(self) -> MissionTable: return self.mission_table_ async def open_server_table(self) -> None: - self.open_server_table_ = OpenServerTable.convert( - await store.get_excel("open_server_table") - ) + self.open_server_table_ = OpenServerTable.convert(await store.get_excel('open_server_table')) @property def OPEN_SERVER_TABLE(self) -> OpenServerTable: return self.open_server_table_ async def player_avatar_table(self) -> None: - self.player_avatar_table_ = PlayerAvatarTable.convert( - await store.get_excel("player_avatar_table") - ) + self.player_avatar_table_ = PlayerAvatarTable.convert(await store.get_excel('player_avatar_table')) @property def PLAYER_AVATAR_TABLE(self) -> PlayerAvatarTable: return self.player_avatar_table_ async def range_table(self) -> None: - self.range_table_ = RangeTable.convert( - {"range_": await store.get_excel("range_table")} - ) + self.range_table_ = RangeTable.convert({'range_': await store.get_excel('range_table')}) @property def RANGE_TABLE(self) -> RangeTable: @@ -372,7 +320,7 @@ class ExcelTableManager: async def replicate_table(self) -> None: self.replicate_table_ = ReplicateTable.convert( - {"replicate": await store.get_excel("replicate_table")} + {'replicate': await store.get_excel('replicate_table')} ) @property @@ -380,18 +328,14 @@ class ExcelTableManager: return self.replicate_table_ async def retro_table(self) -> None: - self.retro_table_ = RetroTable.convert( - await store.get_excel("retro_table") - ) + self.retro_table_ = RetroTable.convert(await store.get_excel('retro_table')) @property def RETRO_TABLE(self) -> RetroTable: return self.retro_table_ async def roguelike_table(self) -> None: - self.roguelike_table_ = RoguelikeTable.convert( - await store.get_excel("roguelike_table") - ) + self.roguelike_table_ = RoguelikeTable.convert(await store.get_excel('roguelike_table')) @property def ROGUELIKE_TABLE(self) -> RoguelikeTable: @@ -399,7 +343,7 @@ class ExcelTableManager: async def roguelike_topic_table(self) -> None: self.roguelike_topic_table_ = RoguelikeTopicTable.convert( - await store.get_excel("roguelike_topic_table") + await store.get_excel('roguelike_topic_table') ) @property @@ -407,45 +351,35 @@ class ExcelTableManager: return self.roguelike_topic_table_ async def sandbox_table(self) -> None: - self.sandbox_table_ = SandboxTable.convert( - await store.get_excel("sandbox_table") - ) + self.sandbox_table_ = SandboxTable.convert(await store.get_excel('sandbox_table')) @property def SANDBOX_TABLE(self) -> SandboxTable: return self.sandbox_table_ async def shop_client_table(self) -> None: - self.shop_client_table_ = ShopClientTable.convert( - await store.get_excel("shop_client_table") - ) + self.shop_client_table_ = ShopClientTable.convert(await store.get_excel('shop_client_table')) @property def SHOP_CLIENT_TABLE(self) -> ShopClientTable: return self.shop_client_table_ async def skill_table(self) -> None: - self.skill_table_ = SkillTable.convert( - {"skills": await store.get_excel("skill_table")} - ) + self.skill_table_ = SkillTable.convert({'skills': await store.get_excel('skill_table')}) @property def SKILL_TABLE(self) -> SkillTable: return self.skill_table_ async def skin_table(self) -> None: - self.skin_table_ = SkinTable.convert( - await store.get_excel("skin_table") - ) + self.skin_table_ = SkinTable.convert(await store.get_excel('skin_table')) @property def SKIN_TABLE(self) -> SkinTable: return self.skin_table_ async def stage_table(self) -> None: - self.stage_table_ = StageTable.convert( - await store.get_excel("stage_table") - ) + self.stage_table_ = StageTable.convert(await store.get_excel('stage_table')) @property def STAGE_TABLE(self) -> StageTable: @@ -453,7 +387,7 @@ class ExcelTableManager: async def story_review_meta_table(self) -> None: self.story_review_meta_table_ = StoryReviewMetaTable.convert( - await store.get_excel("story_review_meta_table") + await store.get_excel('story_review_meta_table') ) @property @@ -462,7 +396,7 @@ class ExcelTableManager: async def story_review_table(self) -> None: self.story_review_table_ = StoryReviewTable.convert( - {"storyreviewtable": await store.get_excel("story_review_table")} + {'storyreviewtable': await store.get_excel('story_review_table')} ) @property @@ -470,61 +404,49 @@ class ExcelTableManager: return self.story_review_table_ async def story_table(self) -> None: - self.story_table_ = StoryTable.convert( - {"stories": await store.get_excel("story_table")} - ) + self.story_table_ = StoryTable.convert({'stories': await store.get_excel('story_table')}) @property def STORY_TABLE(self) -> StoryTable: return self.story_table_ async def tech_buff_table(self) -> None: - self.tech_buff_table_ = TechBuffTable.convert( - await store.get_excel("tech_buff_table") - ) + self.tech_buff_table_ = TechBuffTable.convert(await store.get_excel('tech_buff_table')) @property def TECH_BUFF_TABLE(self) -> TechBuffTable: return self.tech_buff_table_ async def tip_table(self) -> None: - self.tip_table_ = TipTable.convert(await store.get_excel("tip_table")) + self.tip_table_ = TipTable.convert(await store.get_excel('tip_table')) @property def TIP_TABLE(self) -> TipTable: return self.tip_table_ async def token_table(self) -> None: - self.token_table_ = TokenTable.convert( - {"tokens": await store.get_excel("token_table")} - ) + self.token_table_ = TokenTable.convert({'tokens': await store.get_excel('token_table')}) @property def TOKEN_TABLE(self) -> TokenTable: return self.token_table_ async def uniequip_data(self) -> None: - self.uniequip_data_ = UniequipData.convert( - await store.get_excel("uniequip_data") - ) + self.uniequip_data_ = UniequipData.convert(await store.get_excel('uniequip_data')) @property def UNIEQUIP_DATA(self) -> UniequipData: return self.uniequip_data_ async def uniequip_table(self) -> None: - self.uniequip_table_ = UniEquipTable.convert( - await store.get_excel("uniequip_table") - ) + self.uniequip_table_ = UniEquipTable.convert(await store.get_excel('uniequip_table')) @property def UNIEQUIP_TABLE(self) -> UniEquipTable: return self.uniequip_table_ async def zone_table(self) -> None: - self.zone_table_ = ZoneTable.convert( - await store.get_excel("zone_table") - ) + self.zone_table_ = ZoneTable.convert(await store.get_excel('zone_table')) @property def ZONE_TABLE(self) -> ZoneTable: @@ -535,9 +457,9 @@ class ExcelTableManager: for name, method in inspect.getmembers(self): if not inspect.iscoroutinefunction(method): continue - if name.startswith("__"): + if name.startswith('__'): continue - if name != "preload_table" and name != 'CHARATER_TABLE': + if name != 'preload_table' and name != 'CHARATER_TABLE': task.append(method()) await asyncio.gather(*task) diff --git a/ArknightsUID/arknightsuid_resource/memoryStore.py b/ArknightsUID/arknightsuid_resource/memoryStore.py index 9fcb478..b1a7752 100644 --- a/ArknightsUID/arknightsuid_resource/memoryStore.py +++ b/ArknightsUID/arknightsuid_resource/memoryStore.py @@ -24,10 +24,10 @@ def read_json(file_path: Path, **kwargs) -> dict: Read a JSON file and return its contents as a dictionary. """ try: - with Path.open(file_path, encoding="UTF-8", **kwargs) as file: + with Path.open(file_path, encoding='UTF-8', **kwargs) as file: return json.load(file) except (FileNotFoundError, json.JSONDecodeError) as e: - logger.error(f"Error reading JSON file: {e}") + logger.error(f'Error reading JSON file: {e}') return {} @@ -84,7 +84,7 @@ class StorageObject(Struct): class StoreService(Store): - __slots__ = ("store", "lock", "path") + __slots__ = ('store', 'lock', 'path') def __init__(self) -> None: self.path: anyioPath = anyioPath('data') @@ -102,7 +102,7 @@ class StoreService(Store): def _write_sync(self, target_file: anyioPath) -> None: try: - tmp_file_fd, tmp_file_name = mkstemp(dir=self.path, prefix=f"{target_file.name}.cache") + tmp_file_fd, tmp_file_name = mkstemp(dir=self.path, prefix=f'{target_file.name}.cache') renamed = False try: try: @@ -122,7 +122,7 @@ class StoreService(Store): async def set(self, key: str, value: Any, expires_in: int | timedelta | None = None) -> None: if isinstance(value, str): - value = value.encode("UTF-8") + value = value.encode('UTF-8') async with self.lock: self.store_[key] = StorageObject.new(data=value, expires_in=expires_in) diff --git a/ArknightsUID/arknightsuid_roleinfo/draw_roleinfo_card.py b/ArknightsUID/arknightsuid_roleinfo/draw_roleinfo_card.py index 5936af3..ecdbf8c 100644 --- a/ArknightsUID/arknightsuid_roleinfo/draw_roleinfo_card.py +++ b/ArknightsUID/arknightsuid_roleinfo/draw_roleinfo_card.py @@ -34,9 +34,7 @@ async def get_role_img(uid: str): secretary_skinId = secretary.skinId.replace('@', '_') secretary_char_img = ( - Image.open(SKIN_PATH / f'{secretary_skinId}b.png') - .resize((768, 768)) - .convert('RGBA') + Image.open(SKIN_PATH / f'{secretary_skinId}b.png').resize((768, 768)).convert('RGBA') ) char_info.paste(secretary_char_img, (0, -20), secretary_char_img) @@ -48,12 +46,11 @@ async def get_role_img(uid: str): player_info.status.name, (255, 255, 255), sans_font_28, - 'lm' + 'lm', ) # 放入职信息 - base_info.resize((475, 400)).convert('RGBA') char_info.paste(base_info, (200, 0), base_info) diff --git a/ArknightsUID/arknightsuid_signin/sign.py b/ArknightsUID/arknightsuid_signin/sign.py index 9ed434c..5d9cf88 100644 --- a/ArknightsUID/arknightsuid_signin/sign.py +++ b/ArknightsUID/arknightsuid_signin/sign.py @@ -82,9 +82,7 @@ async def single_daily_sign(bot_id: str, ark_uid: str, gid: str, qid: str): if gid == 'on': if qid not in private_msg_list: private_msg_list[qid] = [] - private_msg_list[qid].append( - {'bot_id': bot_id, 'uid': ark_uid, 'msg': im} - ) + private_msg_list[qid].append({'bot_id': bot_id, 'uid': ark_uid, 'msg': im}) else: # 向群消息推送列表添加这个群 if gid not in group_msg_list: diff --git a/ArknightsUID/arknightsuid_start/start.py b/ArknightsUID/arknightsuid_start/start.py index 73e6e9a..38208fd 100644 --- a/ArknightsUID/arknightsuid_start/start.py +++ b/ArknightsUID/arknightsuid_start/start.py @@ -8,4 +8,5 @@ async def all_start(): await startup() await ark_adapter() + asyncio.run(all_start()) diff --git a/ArknightsUID/arknightsuid_user/__init__.py b/ArknightsUID/arknightsuid_user/__init__.py index c998390..73a2692 100644 --- a/ArknightsUID/arknightsuid_user/__init__.py +++ b/ArknightsUID/arknightsuid_user/__init__.py @@ -25,9 +25,7 @@ ark_skd_cred_add = SV('森空岛cred绑定') # await bot.send(uid_list) -@sv_user_info.on_command( - (f'{PREFIX}绑定uid', f'{PREFIX}切换uid', f'{PREFIX}删除uid', f'{PREFIX}解绑uid') -) +@sv_user_info.on_command((f'{PREFIX}绑定uid', f'{PREFIX}切换uid', f'{PREFIX}删除uid', f'{PREFIX}解绑uid')) async def send_link_uid_msg(bot: Bot, ev: Event): await bot.logger.info('开始执行[绑定/解绑用户信息]') qid = ev.user_id diff --git a/ArknightsUID/arknightsuid_user/deal_skd_cred.py b/ArknightsUID/arknightsuid_user/deal_skd_cred.py index 4a52d18..adb6d0c 100644 --- a/ArknightsUID/arknightsuid_user/deal_skd_cred.py +++ b/ArknightsUID/arknightsuid_user/deal_skd_cred.py @@ -3,9 +3,7 @@ import re from ..utils.ark_api import ark_skd_api from ..utils.database.models import ArknightsBind, ArknightsPush, ArknightsUser -ERROR_HINT = ( - '添加失败, 格式为: skd添加cred Cred 例如: skd添加cred VropL583Sb1hClS5buQ4nSASkDlL8tMT' -) +ERROR_HINT = '添加失败, 格式为: skd添加cred Cred 例如: skd添加cred VropL583Sb1hClS5buQ4nSASkDlL8tMT' UID_HINT = '添加失败, 请先绑定明日方舟UID' @@ -22,7 +20,8 @@ async def deal_skd_cred(bot_id: str, cred: str, user_id: str) -> str: token = await ark_skd_api.refresh_token(match.group()) check_cred = await ark_skd_api.check_cred_valid( - cred=match.group(), token=token + cred=match.group(), + token=token, ) if isinstance(check_cred, bool): diff --git a/ArknightsUID/arknightsuid_wiki/__init__.py b/ArknightsUID/arknightsuid_wiki/__init__.py index 545d4b2..71ed30b 100644 --- a/ArknightsUID/arknightsuid_wiki/__init__.py +++ b/ArknightsUID/arknightsuid_wiki/__init__.py @@ -21,13 +21,9 @@ async def text2pic(text: str, max_size: int = 800, font_size: int = 20): if text.endswith('\n'): text = text[:-1] - img = Image.new( - 'RGB', (max_size, len(text) * font_size // 5), (228, 222, 210) - ) + img = Image.new('RGB', (max_size, len(text) * font_size // 5), (228, 222, 210)) img_draw = ImageDraw.ImageDraw(img) - y = draw_center_text_by_line( - img_draw, (25, 0), text, sans_font_20, 'black', 750, True - ) + y = draw_center_text_by_line(img_draw, (25, 0), text, sans_font_20, 'black', 750, True) img = img.crop((0, 0, 800, int(y + 30))) return await convert_img(img) @@ -50,6 +46,7 @@ async def send_role_wiki_pic(bot: Bot, ev: Event): img = await get_wiki_info(char_id=char_id) await bot.send(await text2pic(img)) + @sv_sr_wiki.on_prefix('ark模组图鉴') async def send_equip_wiki_pic(bot: Bot, ev: Event): char_name = ' '.join(re.findall('[\u4e00-\u9fa5]+', ev.text)) diff --git a/ArknightsUID/arknightsuid_wiki/draw_wiki_img.py b/ArknightsUID/arknightsuid_wiki/draw_wiki_img.py index 409c41b..10ae1ac 100644 --- a/ArknightsUID/arknightsuid_wiki/draw_wiki_img.py +++ b/ArknightsUID/arknightsuid_wiki/draw_wiki_img.py @@ -3,24 +3,21 @@ import re from pathlib import Path from typing import Union -from gsuid_core.data_store import get_res_path -from gsuid_core.plugins.ArknightsUID.ArknightsUID.arknightsuid_resource.memoryStore import store from jinja2 import Template from PIL import Image, ImageDraw -# from rich import print from ..arknightsuid_resource.constants import Excel from ..utils.fonts.source_han_sans import ( - sans_font_18, - sans_font_26, - sans_font_34, - sans_font_50, + # sans_font_18, + # sans_font_26, + # sans_font_34, + # sans_font_50, sans_font_120, ) TEXTURE2D_PATH = Path(__file__).parent / 'texture2D' -bg_img =Image.open(TEXTURE2D_PATH / 'bg.jpg') +bg_img = Image.open(TEXTURE2D_PATH / 'bg.jpg') title_img = Image.open(TEXTURE2D_PATH / 'title.png') vvan_img = Image.open(TEXTURE2D_PATH / 'char_4098_vvana_2b.png').resize((2000, 2000)) @@ -30,36 +27,36 @@ red_color = (235, 61, 75) black_color = (0, 0, 0) profession_en_to_cn = { - "WARRIOR": "近卫", - "SNIPER": "狙击", - "TANK": "重装", - "MEDIC": "医疗", - "SUPPORT": "辅助", - "CASTER": "术师", - "SPECIAL": "特种", - "PIONEER": "先锋", - "TOKEN": "召唤物", - "TRAP": "陷阱", + 'WARRIOR': '近卫', + 'SNIPER': '狙击', + 'TANK': '重装', + 'MEDIC': '医疗', + 'SUPPORT': '辅助', + 'CASTER': '术师', + 'SPECIAL': '特种', + 'PIONEER': '先锋', + 'TOKEN': '召唤物', + 'TRAP': '陷阱', } char_position_en_to_cn = { - "MELEE": "近战", - "RANGED": "远程", - "ALL": "近战/远程", - "NONE": "无", + 'MELEE': '近战', + 'RANGED': '远程', + 'ALL': '近战/远程', + 'NONE': '无', } attr_en_to_cn = { - "maxHp": "生命", - "atk": "攻击", - "def_": "防御", - "magicResistance": "法抗", - "cost": "部署费用", - "blockCnt": "阻挡", + 'maxHp': '生命', + 'atk': '攻击', + 'def_': '防御', + 'magicResistance': '法抗', + 'cost': '部署费用', + 'blockCnt': '阻挡', # "moveSpeed": "移动速度", - "attackSpeed": "攻击速度", - "baseAttackTime": "攻击间隔", - "respawnTime": "再部署时间", + 'attackSpeed': '攻击速度', + 'baseAttackTime': '攻击间隔', + 'respawnTime': '再部署时间', # "hpRecoveryPerSec": "生命回复", # "spRecoveryPerSec": "技力回复", # "maxDeployCount": "部署数量上限", @@ -75,19 +72,18 @@ attr_en_to_cn = { } potential_id_to_cn = { - 0: "潜能2", - 1: "潜能3", - 2: "潜能4", - 3: "潜能5", - 4: "潜能6", + 0: '潜能2', + 1: '潜能3', + 2: '潜能4', + 3: '潜能5', + 4: '潜能6', } + def render_template(template_str, data): - # Extract placeholders and formatting options from the template using regular expression matches = re.finditer(r'\{([^}:]+)\}', template_str) matches_1 = re.finditer(r'\{([^{}]+):([^{}]+)\}', template_str) - # Create a dictionary with placeholder names, formatting options, and corresponding values placeholder_data = {} for match in matches: placeholder = match.groups() @@ -95,16 +91,17 @@ def render_template(template_str, data): placeholder_data[placeholder[0]] = (formatting_option, data.get(placeholder[0], '')) for match in matches_1: placeholder, formatting_option = match.groups() - # placeholder = placeholder.replace('-', '') + placeholder_data[placeholder] = (formatting_option, data.get(placeholder.replace('-', ''), '')) - # Replace the placeholders in the template with the formatted values + for placeholder, (formatting_option, value) in placeholder_data.items(): if formatting_option == '': - template_str = template_str.replace(f'{{{placeholder}}}', f"{value}") + template_str = template_str.replace(f'{{{placeholder}}}', f'{value}') else: - template_str = template_str.replace(f'{{{placeholder}:{formatting_option}}}', f"{value:{formatting_option}}") + template_str = template_str.replace( + f'{{{placeholder}:{formatting_option}}}', f'{value:{formatting_option}}' + ) - # Render the template template = Template(template_str) rendered_text = template.render() @@ -112,7 +109,6 @@ def render_template(template_str, data): async def get_equip_info(char_id: str): - UNIEQUIP_TABLE = Excel.UNIEQUIP_TABLE BATTLE_EQUIP_TABLE = Excel.BATTLE_EQUIP_TABLE @@ -225,9 +221,7 @@ async def get_equip_info(char_id: str): return im - async def get_wiki_info(char_id: str): - CHARACTER_TABLE = Excel.CHARATER_TABLE SKILL_TABLE = Excel.SKILL_TABLE UNIEQUIP_TABLE = Excel.UNIEQUIP_TABLE @@ -290,8 +284,10 @@ async def get_wiki_info(char_id: str): if len(potential.buff.attributes.attributeModifiers) == 1: potential_add_attribute_type = potential_add_attribute[0].attributeType potential_add_attribute_value = potential_add_attribute[0].value - potential_add_dict[potential_id] = (potential_add_attribute_type, potential_add_attribute_value) - # im += f"{potential_add_attribute_type}: {potential_add_attribute_value}" + potential_add_dict[potential_id] = ( + potential_add_attribute_type, + potential_add_attribute_value, + ) else: raise NotImplementedError im += '-----------------\n' @@ -316,7 +312,7 @@ async def get_wiki_info(char_id: str): skill_data = SKILL_TABLE.skills[skill] skill_level_data = skill_data.levels[-1] skill_name = skill_level_data.name - im += f"技能名: {skill_name}\n" + im += f'技能名: {skill_name}\n' skill_type = skill_level_data.skillType skill_description = skill_level_data.description skill_sp_data = skill_level_data.spData @@ -331,7 +327,6 @@ async def get_wiki_info(char_id: str): elif skill_sp_type == 8: pass else: - print(skill_name, skill_sp_type) raise NotImplementedError if skill_type == 1: @@ -341,13 +336,11 @@ async def get_wiki_info(char_id: str): elif skill_type == 0: pass else: - print(skill_name, skill_type) raise NotImplementedError skill_duration = skill_level_data.duration im += f'消耗: {skill_sp_data.spCost} ' im += f'初始: {skill_sp_data.initSp} ' - # im += f'持续: {skill_sp_data.increment}\n' im += f'持续: {str(skill_duration)}\n' skill_blackboard_data = skill_level_data.blackboard black_board_dict: dict[str, Union[Union[int, float], None]] = {} @@ -356,45 +349,21 @@ async def get_wiki_info(char_id: str): if skill_description: skill_description = skill_description.replace(':0.0', '') skill_description = re.sub(r'<[^>]+>', '', skill_description) - # print(skill_description) - # [max_hp].max_hp [atk].atk [def].def - # skill_description = re.sub(r'\[max_hp].max_hp', '', skill_description) - # skill_description = re.sub(r'\[atk].atk', '', skill_description) - # skill_description = re.sub(r'\[def].def', '', skill_description) - # print(skill_description) - # print(black_board_dict) - # print(skill_description) skill_description = render_template(skill_description, black_board_dict).replace('--', '-') - # skill_description = template.render(**black_board_dict) - - # skill_description = skill_description.format(**black_board_dict) last_skill_description = re.sub(r'.000000', '', skill_description) - print() if '{' in last_skill_description: - print(last_skill_description) raise NotImplementedError - # re 匹配 '\n' + skill_desc = re.findall(r'[^\\n]+', last_skill_description) for skill_desc_line in skill_desc: im += f'{skill_desc_line}\n' im += '-----------------\n' im = im[:-19] - print(im) return im async def draw_wiki(char_id: str): - - # TASK = [] - # for file_path in Path( - # get_res_path(["ArknightsUID", "resource", "gamedata"]) - # ).glob("*.json"): - # TASK.append(store.get_file(file_path)) - # asyncio.gather(*TASK) - - # await Excel.preload_table() - CHARACTER_TABLE = Excel.CHARATER_TABLE SKILL_TABLE = Excel.SKILL_TABLE UNIEQUIP_TABLE = Excel.UNIEQUIP_TABLE @@ -445,7 +414,10 @@ async def draw_wiki(char_id: str): if len(potential.buff.attributes.attributeModifiers) == 1: potential_add_attribute_type = potential_add_attribute[0].attributeType potential_add_attribute_value = potential_add_attribute[0].value - potential_add_dict[potential_id] = (potential_add_attribute_type, potential_add_attribute_value) + potential_add_dict[potential_id] = ( + potential_add_attribute_type, + potential_add_attribute_value, + ) else: raise NotImplementedError @@ -487,8 +459,5 @@ async def draw_wiki(char_id: str): return img - if __name__ == '__main__': - import asyncio - asyncio.run(draw_wiki(char_id='char_4098_vvana')) diff --git a/ArknightsUID/utils/api/skd/request.py b/ArknightsUID/utils/api/skd/request.py index 2a8070b..79c7f8f 100644 --- a/ArknightsUID/utils/api/skd/request.py +++ b/ArknightsUID/utils/api/skd/request.py @@ -1,8 +1,8 @@ -from copy import deepcopy import hashlib +import hmac import json import time -import hmac +from copy import deepcopy from typing import Any, Dict, Literal, Tuple, Union, cast from urllib.parse import urlparse @@ -25,19 +25,19 @@ ssl_verify = core_plugins_config.get_config('MhySSLVerify').data _HEADER: Dict[str, str] = { - 'Host': 'zonai.skland.com', - 'platform': '1', - 'Origin': 'https://www.skland.com', - 'Referer': 'https://www.skland.com/', - 'Content-Type': 'application/json', - 'User-Agent': 'Skland/1.5.1 (com.hypergryph.skland; build:100501001; Android 33; ) Okhttp/4.11.0', - 'vName': '1.5.1', - 'vCode': '100501001', - 'nId': '1', - 'os': '33', - 'manufacturer': 'Xiaomi', - 'Connection': 'close' - } + 'Host': 'zonai.skland.com', + 'platform': '1', + 'Origin': 'https://www.skland.com', + 'Referer': 'https://www.skland.com/', + 'Content-Type': 'application/json', + 'User-Agent': 'Skland/1.5.1 (com.hypergryph.skland; build:100501001; Android 33; ) Okhttp/4.11.0', + 'vName': '1.5.1', + 'vCode': '100501001', + 'nId': '1', + 'os': '33', + 'manufacturer': 'Xiaomi', + 'Connection': 'close', +} class TokenExpiredError(Exception): @@ -69,7 +69,7 @@ class BaseArkApi: return validate, ch async def get_game_player_info(self, uid: str) -> Union[int, ArknightsPlayerInfoModel]: - cred: Union[str, None] = await ArknightsUser.get_user_attr_by_uid(uid=uid, attr='cred') + cred: Union[str, None] = await ArknightsUser.get_user_attr_by_uid(uid=uid, attr='cred') if cred is None: return -60 is_vaild = await self.check_cred_valid(cred) @@ -104,14 +104,11 @@ class BaseArkApi: return -61 header = deepcopy(_HEADER) header['cred'] = cred - data = { - 'uid': uid, - 'gameId': 1 - } + data = {'uid': uid, 'gameId': 1} header = await self.set_sign( ARK_SKD_SIGN, header=header, - data=data + data=data, ) header['Content-Type'] = 'application/json' header['Content-Length'] = str(len(json.dumps(data))) @@ -146,7 +143,7 @@ class BaseArkApi: header=header, params={ 'uid': uid, - 'gameId': 1 + 'gameId': 1, }, ) raw_data = await self.ark_request( @@ -154,7 +151,7 @@ class BaseArkApi: method='GET', params={ 'uid': uid, - 'gameId': 1 + 'gameId': 1, }, header=header, ) @@ -212,21 +209,22 @@ class BaseArkApi: self, url: str, header: Dict[str, Any], - data: Union[Dict[str, Any], None ]= None, + data: Union[Dict[str, Any], None] = None, params: Union[Dict[str, Any], None] = None, token: Union[str, None] = None, ) -> Dict: parsed_url = urlparse(url) path = parsed_url.path timestamp = str(int(time.time()) - 2) - dId = hashlib.sha256(header["cred"].encode('utf-8')).hexdigest()[0:16] - str1=json.dumps( - { + dId = hashlib.sha256(header['cred'].encode('utf-8')).hexdigest()[0:16] + str1 = json.dumps( + { 'platform': header.get('platform', '1'), 'timestamp': timestamp, 'dId': dId, - 'vName': header.get('vName', '') - }, separators=(',', ':') + 'vName': header.get('vName', ''), + }, + separators=(',', ':'), ) s2 = '' if params: @@ -241,13 +239,13 @@ class BaseArkApi: logger.debug(f'cred {header["cred"]} token {token} token_ {token_}') token = token if token else token_ if token is None: - raise Exception("token is None") + raise Exception('token is None') encode_token = token.encode('utf-8') hex_s = hmac.new(encode_token, str2.encode('utf-8'), hashlib.sha256).hexdigest() sign = hashlib.md5(hex_s.encode('utf-8')).hexdigest().encode('utf-8').decode('utf-8') - header["sign"] = sign - header["timestamp"] = timestamp - header["dId"] = dId + header['sign'] = sign + header['timestamp'] = timestamp + header['dId'] = dId logger.debug(header) return header @@ -288,13 +286,11 @@ class BaseArkApi: url: str, method: Literal['GET', 'POST'] = 'GET', header: Dict[str, Any] = _HEADER, - params: Union[Dict[str, Any], None ]= None, + params: Union[Dict[str, Any], None] = None, data: Union[Dict[str, Any], None] = None, use_proxy: Union[bool, None] = False, ) -> Union[Dict, Union[int, None]]: - async with ClientSession( - connector=TCPConnector(verify_ssl=ssl_verify) - ) as client: + async with ClientSession(connector=TCPConnector(verify_ssl=ssl_verify)) as client: raw_data = {} if 'cred' not in header: return 10001 diff --git a/ArknightsUID/utils/database/models.py b/ArknightsUID/utils/database/models.py index c3e2fa8..7aef687 100644 --- a/ArknightsUID/utils/database/models.py +++ b/ArknightsUID/utils/database/models.py @@ -13,7 +13,7 @@ from sqlalchemy.ext.asyncio import AsyncSession from sqlalchemy.future import select from sqlmodel import Field -T_ARK_User = TypeVar("T_ARK_User", bound="ArknightsUser") +T_ARK_User = TypeVar('T_ARK_User', bound='ArknightsUser') class ArknightsBind(Bind, table=True): @@ -29,7 +29,9 @@ class ArknightsUser(User, table=True): @classmethod @with_session async def select_data_by_cred( - cls, session: AsyncSession, cred: str + cls, + session: AsyncSession, + cred: str, ) -> Union[BaseModel, None]: sql = select(cls).where(cls.cred == cred) result = await session.execute(sql) @@ -38,10 +40,8 @@ class ArknightsUser(User, table=True): @classmethod @with_session - async def get_all_user( - cls: Type[T_ARK_User], session: AsyncSession - ) -> List[T_ARK_User]: - sql = select(cls).where(cls.cred is not None, cls.cred != "") + async def get_all_user(cls: Type[T_ARK_User], session: AsyncSession) -> List[T_ARK_User]: + sql = select(cls).where(cls.cred is not None, cls.cred != '') result = await session.execute(sql) data: List[T_ARK_User] = result.scalars().all() return data @@ -66,7 +66,10 @@ class ArknightsUser(User, table=True): retcode = -1 if await cls.data_exist(uid=uid): retcode = await cls.update_data_by_uid( - uid, cls.bot_id, None, **{attr: value} + uid, + cls.bot_id, + None, + **{attr: value}, ) return not bool(retcode) @@ -83,13 +86,9 @@ class ArknightsPush(Push, table=True): ap_is_push: Union[bool, None] = Field(default=False, title='理智是否已经推送') training_push: Union[bool, None] = Field(default=False, title='训练室推送') training_value: Union[int, None] = Field(default=30, title='训练室推送阈值') - training_is_push: Union[bool, None] = Field( - default=False, title='训练室是否已经推送' - ) + training_is_push: Union[bool, None] = Field(default=False, title='训练室是否已经推送') version_push: Union[bool, None] = Field(default=False, title='版本更新推送') - version_is_push: Union[bool, None] = Field( - default=False, title='版本更新是否已经推送' - ) + version_is_push: Union[bool, None] = Field(default=False, title='版本更新是否已经推送') @classmethod async def insert_push_data(cls, bot_id: str, uid: str, skd_uid: str): @@ -122,7 +121,10 @@ class ArknightsPush(Push, table=True): retcode = -1 if await cls.data_exist(uid=uid): retcode = await cls.update_data_by_uid( - uid, cls.bot_id, None, **data + uid, + cls.bot_id, + None, + **data, ) return not bool(retcode) @@ -136,9 +138,7 @@ class ArknightsPush(Push, table=True): await cls.update_push_data(uid, {f'{mode}_is_push': status}) @classmethod - async def select_push_data( - cls: Type[T_BaseIDModel], uid: str - ) -> Union[T_BaseIDModel, None]: + async def select_push_data(cls: Type[T_BaseIDModel], uid: str) -> Union[T_BaseIDModel, None]: return await cls.base_select_data(uid=uid) @classmethod diff --git a/ArknightsUID/utils/error_reply.py b/ArknightsUID/utils/error_reply.py index 375d99a..b1c1afb 100644 --- a/ArknightsUID/utils/error_reply.py +++ b/ArknightsUID/utils/error_reply.py @@ -3,6 +3,7 @@ from typing import Union UID_HINT = '添加失败, 请先绑定明日方舟UID' + def get_error(retcode: Union[int, str]) -> str: if retcode == 10000: return '请求异常, 请检查具体实现代码...' diff --git a/ArknightsUID/utils/models/common.py b/ArknightsUID/utils/models/common.py index 04e2689..a401acc 100644 --- a/ArknightsUID/utils/models/common.py +++ b/ArknightsUID/utils/models/common.py @@ -7,7 +7,7 @@ from msgspec import json as mscjson from typing_extensions import dataclass_transform Model = TypeVar('Model', bound='BaseStruct') -T = TypeVar("T") +T = TypeVar('T') def transUnset(v: Union[T, UnsetType], d: Any = None) -> Union[T, Any]: @@ -16,7 +16,10 @@ def transUnset(v: Union[T, UnsetType], d: Any = None) -> Union[T, Any]: @dataclass_transform(field_specifiers=(field,)) class BaseStruct( - Struct, forbid_unknown_fields=True, omit_defaults=True, gc=False + Struct, + forbid_unknown_fields=True, + omit_defaults=True, + gc=False, ): class Config: encoder = mscjson.Encoder() diff --git a/ArknightsUID/utils/models/gamedata/ActivityTable.py b/ArknightsUID/utils/models/gamedata/ActivityTable.py index dfd2419..0d29155 100644 --- a/ArknightsUID/utils/models/gamedata/ActivityTable.py +++ b/ArknightsUID/utils/models/gamedata/ActivityTable.py @@ -7,8 +7,8 @@ from msgspec import field class ActivityTableBasicData(BaseStruct): - id_: str = field(name="id") - type_: str = field(name="type") + id_: str = field(name='id') + type_: str = field(name='type') name: str startTime: int endTime: int @@ -32,16 +32,16 @@ class ActivityTableHomeActivityConfig(BaseStruct): class MissionDisplayRewards(BaseStruct): - type_: str = field(name="type") - id_: str = field(name="id") + type_: str = field(name='type') + id_: str = field(name='id') count: int class MissionData(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') sortId: int description: str - type_: str = field(name="type") + type_: str = field(name='type') itemBgType: str preMissionIds: Union[List[str], None] template: str @@ -59,9 +59,9 @@ class MissionData(BaseStruct): class MissionGroup(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') title: Union[str, None] - type_: str = field(name="type") + type_: str = field(name='type') preMissionGroup: Union[str, None] period: Union[List[int], None] rewards: Union[List[MissionDisplayRewards], None] @@ -79,9 +79,9 @@ class DefaultZoneData(BaseStruct): class ItemBundle(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') count: int - type_: str = field(name="type") + type_: str = field(name='type') class DefaultShopData(BaseStruct): @@ -244,7 +244,7 @@ class Act3D0DataLimitedPoolDetailInfoPoolItemInfo(BaseStruct): perCount: int totalCount: int weight: int - type_: str = field(name="type") + type_: str = field(name='type') orderId: int @@ -259,7 +259,7 @@ class Act3D0DataInfinitePoolDetailInfoPoolItemInfo(BaseStruct): goodType: str perCount: int weight: int - type_: str = field(name="type") + type_: str = field(name='type') orderId: int @@ -492,7 +492,7 @@ class RuneData(BaseStruct): class RuneTablePackedRuneData(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') points: float mutexGroupKey: Union[str, None] description: str @@ -520,7 +520,7 @@ class Act5D1Data(BaseStruct): class ActivityCollectionDataCollectionInfo(BaseStruct): - id_: int = field(name="id") + id_: int = field(name='id') itemType: str itemId: str itemCnt: int @@ -733,7 +733,7 @@ class Act13SideDataLongTermMissionData(BaseStruct): class Act13SideDataDailyMissionData(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') sortId: int description: str missionName: str @@ -929,7 +929,7 @@ class Act17sideDataMainlineChapterData(BaseStruct): chapterDes: str chapterIcon: str unlockDes: str - id_: str = field(name="id") + id_: str = field(name='id') class Act17sideDataMainlineData(BaseStruct): @@ -1172,9 +1172,9 @@ class SharedCharData(BaseStruct): evolvePhase: int level: int favorPoint: int - currentEquip: Union[str, None] = field(name="currentEquip", default=None) + currentEquip: Union[str, None] = field(name='currentEquip', default=None) equips: Union[Dict[str, SharedCharDataCharEquipInfo], None] = field( - name="equip", + name='equip', default={}, ) skillIndex: Union[int, None] = None @@ -1241,8 +1241,8 @@ class ActivityBossRushDataBossRushStageAdditionData(BaseStruct): class ActivityBossRushDataDisplayDetailRewards(BaseStruct): occPercent: int dropCount: int - type_: str = field(name="type") - id_: str = field(name="id") + type_: str = field(name='type') + id_: str = field(name='id') dropType: int @@ -1348,15 +1348,15 @@ class ActivityFloatParadeDataDailyData(BaseStruct): class ActivityFloatParadeDataRewardPool(BaseStruct): grpId: str - id_: str = field(name="id") - type_: str = field(name="type") + id_: str = field(name='id') + type_: str = field(name='type') name: str desc: Union[str, None] reward: ItemBundle class ActivityFloatParadeDataTactic(BaseStruct): - id_: int = field(name="id") + id_: int = field(name='id') name: str packName: str briefName: str @@ -1395,7 +1395,7 @@ class ActSandboxData(BaseStruct): class ActivityMainlineBuffDataMissionGroupData(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') bindBanner: str sortId: int zoneId: str @@ -1411,7 +1411,7 @@ class ActivityMainlineBuffDataPeriodDataStepData(BaseStruct): class ActivityMainlineBuffDataPeriodData(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') startTime: int endTime: int favorUpCharDesc: str @@ -1511,23 +1511,23 @@ class Act24SideDataMissionExtraData(BaseStruct): class WeightItemBundle(BaseStruct): - id_: str = field(name="id") - type_: str = field(name="type") + id_: str = field(name='id') + type_: str = field(name='type') dropType: str count: int weight: int class StageDataDisplayRewards(BaseStruct): - type_: str = field(name="type") - id_: str = field(name="id") + type_: str = field(name='type') + id_: str = field(name='id') dropType: int class StageDataDisplayDetailRewards(BaseStruct): occPercent: int - type_: str = field(name="type") - id_: str = field(name="id") + type_: str = field(name='type') + id_: str = field(name='id') dropType: int @@ -1599,7 +1599,7 @@ class Act25SideDataArchiveItemData(BaseStruct): class Act25SideDataArchiveMapInfoData(BaseStruct): objectId: str - type_: int = field(name="type") + type_: int = field(name='type') numberId: str areaId: str sortId: int @@ -1622,7 +1622,7 @@ class Act25SideDataAreaInfoData(BaseStruct): class Act25SideDataAreaMissionData(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') areaId: str preposedMissionId: Union[str, None] sortId: int @@ -1711,7 +1711,7 @@ class Act38D1DataAct38D1DimensionItemData(BaseStruct): class Act38D1DataAct38D1CommentData(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') sortId: int desc: str @@ -1746,7 +1746,7 @@ class Act38D1Data(BaseStruct): class Act27SideDataAct27SideGoodData(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') name: str typeDesc: str iconId: str @@ -1865,7 +1865,7 @@ class Act42D0DataEffectGroupInfoData(BaseStruct): class Act42D0DataEffectInfoRuneData(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') points: int mutexGroupKey: Union[str, None] description: str @@ -1958,14 +1958,14 @@ class Act29SideFragData(BaseStruct): class Act29SideOrcheType(Enum): - ORCHE_1 = "ORCHE_1" - ORCHE_2 = "ORCHE_2" - ORCHE_3 = "ORCHE_3" - ENUM = "ENUM" + ORCHE_1 = 'ORCHE_1' + ORCHE_2 = 'ORCHE_2' + ORCHE_3 = 'ORCHE_3' + ENUM = 'ENUM' class Act29SideOrcheData(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') name: str desc: str icon: str @@ -1974,12 +1974,12 @@ class Act29SideOrcheData(BaseStruct): class Act29SideProductType(Enum): - PRODUCT_TYPE_1 = "PRODUCT_TYPE_1" - PRODUCT_TYPE_2 = "PRODUCT_TYPE_2" - PRODUCT_TYPE_3 = "PRODUCT_TYPE_3" - PRODUCT_TYPE_4 = "PRODUCT_TYPE_4" - PRODUCT_TYPE_5 = "PRODUCT_TYPE_5" - ENUM = "ENUM" + PRODUCT_TYPE_1 = 'PRODUCT_TYPE_1' + PRODUCT_TYPE_2 = 'PRODUCT_TYPE_2' + PRODUCT_TYPE_3 = 'PRODUCT_TYPE_3' + PRODUCT_TYPE_4 = 'PRODUCT_TYPE_4' + PRODUCT_TYPE_5 = 'PRODUCT_TYPE_5' + ENUM = 'ENUM' class Act29SideProductGroupData(BaseStruct): @@ -2009,7 +2009,7 @@ class Act29SideProductGroupData(BaseStruct): class Act29SideProductData(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') orcheId: Union[str, None] groupId: str formId: Union[str, None] @@ -2034,9 +2034,9 @@ class Act29SideInvestResultData(BaseStruct): class Act29SideInvestType(Enum): - MAJOR = "MAJOR" - RARE = "RARE" - NORMAL = "NORMAL" + MAJOR = 'MAJOR' + RARE = 'RARE' + NORMAL = 'NORMAL' class Act29SideInvestData(BaseStruct): @@ -2142,8 +2142,8 @@ class ActivityThemeDataTimeNode(BaseStruct): class ActivityThemeData(BaseStruct): - id_: str = field(name="id") - type_: str = field(name="type") + id_: str = field(name='id') + type_: str = field(name='type') funcId: str endTs: int sortId: int @@ -2365,7 +2365,7 @@ class AprilFoolTable(BaseStruct): class CartComponents(BaseStruct): compId: str sortId: int - type_: str = field(name="type") + type_: str = field(name='type') posList: List[str] posIdDict: Dict[str, List[str]] name: str @@ -2605,7 +2605,7 @@ class ActivityTableExtraData(BaseStruct): class ActivityTable(BaseStruct): - __version__ = "23-10-31-11-47-45-d410ff" + __version__ = '23-10-31-11-47-45-d410ff' basicInfo: Dict[str, ActivityTableBasicData] homeActConfig: Dict[str, ActivityTableHomeActivityConfig] diff --git a/ArknightsUID/utils/models/gamedata/AudioData.py b/ArknightsUID/utils/models/gamedata/AudioData.py index 8925c7e..2433ab2 100644 --- a/ArknightsUID/utils/models/gamedata/AudioData.py +++ b/ArknightsUID/utils/models/gamedata/AudioData.py @@ -62,7 +62,7 @@ class BattleVoiceOption(BaseStruct): class MusicData(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') name: str bank: str @@ -91,7 +91,7 @@ class AudioDataFadeStyle(BaseStruct): class AudioData(BaseStruct): - __version__ = "23-10-31-11-47-45-d410ff" + __version__ = '23-10-31-11-47-45-d410ff' bgmBanks: List[BGMBank] soundFXBanks: List[SoundFXBank] diff --git a/ArknightsUID/utils/models/gamedata/BattleEquipTable.py b/ArknightsUID/utils/models/gamedata/BattleEquipTable.py index e823c57..42fd10e 100644 --- a/ArknightsUID/utils/models/gamedata/BattleEquipTable.py +++ b/ArknightsUID/utils/models/gamedata/BattleEquipTable.py @@ -78,6 +78,6 @@ class BattleEquipData(BaseStruct): class BattleEquipTable(BaseStruct): - __version__ = "23-10-31-11-47-45-d410ff" + __version__ = '23-10-31-11-47-45-d410ff' equips: Dict[str, BattleEquipData] diff --git a/ArknightsUID/utils/models/gamedata/BuildingData.py b/ArknightsUID/utils/models/gamedata/BuildingData.py index 00b65a5..871c54c 100644 --- a/ArknightsUID/utils/models/gamedata/BuildingData.py +++ b/ArknightsUID/utils/models/gamedata/BuildingData.py @@ -6,13 +6,13 @@ from msgspec import field class BuildingDataRoomUnlockCondCondItem(BaseStruct): - type_: str = field(name="type") + type_: str = field(name='type') level: int count: int class BuildingDataRoomUnlockCond(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') number: Dict[str, BuildingDataRoomUnlockCondCondItem] @@ -22,9 +22,9 @@ class GridPosition(BaseStruct): class ItemBundle(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') count: int - type_: str = field(name="type") + type_: str = field(name='type') class BuildingDataRoomDataBuildCost(BaseStruct): @@ -44,7 +44,7 @@ class BuildingDataRoomDataPhaseData(BaseStruct): class BuildingDataRoomData(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') name: str description: Union[str, None] defaultPrefabId: str @@ -56,7 +56,7 @@ class BuildingDataRoomData(BaseStruct): class BuildingDataLayoutDataRoomSlot(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') cleanCostId: str costLabor: int provideLabor: int @@ -71,26 +71,26 @@ class BuildingDataLayoutDataSlotCleanCostCountCost(BaseStruct): class BuildingDataLayoutDataSlotCleanCost(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') number: Dict[str, BuildingDataLayoutDataSlotCleanCostCountCost] class BuildingDataLayoutDataStoreyData(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') yOffset: int unlockControlLevel: int - type_: str = field(name="type") + type_: str = field(name='type') class BuildingDataLayoutData(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') slots: Dict[str, BuildingDataLayoutDataRoomSlot] cleanCosts: Dict[str, BuildingDataLayoutDataSlotCleanCost] storeys: Dict[str, BuildingDataLayoutDataStoreyData] class BuildingDataPrefabInfo(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') blueprintRoomOverrideId: Union[str, None] size: GridPosition floorGridSize: GridPosition @@ -98,45 +98,45 @@ class BuildingDataPrefabInfo(BaseStruct): obstacleId: Union[str, None] -class BuildingDataManufactPhase(BaseStruct, tag="BuildingDataManufactPhase"): +class BuildingDataManufactPhase(BaseStruct, tag='BuildingDataManufactPhase'): speed: Union[float, int] outputCapacity: int -class BuildingDataShopPhase(BaseStruct, tag="BuildingDataShopPhase"): +class BuildingDataShopPhase(BaseStruct, tag='BuildingDataShopPhase'): counterNum: int speed: Union[float, int] moneyCapacity: int -class BuildingDataHirePhase(BaseStruct, tag="BuildingDataHirePhase"): +class BuildingDataHirePhase(BaseStruct, tag='BuildingDataHirePhase'): economizeRate: float resSpeed: int refreshTimes: int -class BuildingDataDormPhase(BaseStruct, tag="BuildingDataDormPhase"): +class BuildingDataDormPhase(BaseStruct, tag='BuildingDataDormPhase'): manpowerRecover: int decorationLimit: int -class BuildingDataMeetingPhase(BaseStruct, tag="BuildingDataMeetingPhase"): +class BuildingDataMeetingPhase(BaseStruct, tag='BuildingDataMeetingPhase'): friendSlotInc: int maxVisitorNum: int gatheringSpeed: int -class BuildingDataTradingPhase(BaseStruct, tag="BuildingDataTradingPhase"): +class BuildingDataTradingPhase(BaseStruct, tag='BuildingDataTradingPhase'): orderSpeed: Union[float, int] orderLimit: int orderRarity: int -class BuildingDataWorkshopPhase(BaseStruct, tag="BuildingDataWorkshopPhase"): +class BuildingDataWorkshopPhase(BaseStruct, tag='BuildingDataWorkshopPhase'): manpowerFactor: Union[float, int] -class BuildingDataTrainingPhase(BaseStruct, tag="BuildingDataTrainingPhase"): +class BuildingDataTrainingPhase(BaseStruct, tag='BuildingDataTrainingPhase'): specSkillLvlLimit: int @@ -222,11 +222,11 @@ class BuildingDataBuildingBuff(BaseStruct): class BuildingDataCustomDataFurnitureData(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') sortId: int name: str iconId: str - type_: str = field(name="type") + type_: str = field(name='type') subType: str location: str category: str @@ -257,11 +257,11 @@ class BuildingDataCustomDataThemeQuickSetupItem(BaseStruct): furnitureId: str pos0: int pos1: int - dir_: int = field(name="dir") + dir_: int = field(name='dir') class BuildingDataCustomDataThemeData(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') sortId: int name: str themeType: str @@ -272,7 +272,7 @@ class BuildingDataCustomDataThemeData(BaseStruct): class BuildingDataCustomDataGroupData(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') sortId: int name: str themeId: str @@ -282,14 +282,14 @@ class BuildingDataCustomDataGroupData(BaseStruct): class BuildingDataCustomDataFurnitureTypeData(BaseStruct): - type_: str = field(name="type") + type_: str = field(name='type') name: str class BuildingDataCustomDataFurnitureSubTypeData(BaseStruct): subType: str name: str - type_: str = field(name="type") + type_: str = field(name='type') sortId: int @@ -318,9 +318,7 @@ class BuildingDataCustomDataDiyUISortTemplateListData(BaseStruct): expandState: str defaultTemplateIndex: int defaultTemplateOrder: str - templates: List[ - BuildingDataCustomDataDiyUISortTemplateListDataDiyUISortTemplateData - ] + templates: List[BuildingDataCustomDataDiyUISortTemplateListDataDiyUISortTemplateData] class BuildingDataCustomData(BaseStruct): @@ -423,7 +421,7 @@ class BuildingDataCreditFormula(BaseStruct): class BuildingData(BaseStruct): - __version__ = "23-10-31-11-47-45-d410ff" + __version__ = '23-10-31-11-47-45-d410ff' controlSlotId: str meetingSlotId: str diff --git a/ArknightsUID/utils/models/gamedata/CampaignTable.py b/ArknightsUID/utils/models/gamedata/CampaignTable.py index ffbed87..40f7d85 100644 --- a/ArknightsUID/utils/models/gamedata/CampaignTable.py +++ b/ArknightsUID/utils/models/gamedata/CampaignTable.py @@ -6,9 +6,9 @@ from msgspec import field class ItemBundle(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') count: int - type_: str = field(name="type") + type_: str = field(name='type') class CampaignDataBreakRewardLadder(BaseStruct): @@ -18,16 +18,16 @@ class CampaignDataBreakRewardLadder(BaseStruct): class WeightItemBundle(BaseStruct): - id_: str = field(name="id") - type_: str = field(name="type") + id_: str = field(name='id') + type_: str = field(name='type') dropType: str count: int weight: int class StageDataDisplayRewards_(BaseStruct): - type_: str = field(name="type") - id_: str = field(name="id") + type_: str = field(name='type') + id_: str = field(name='id') dropType: int @@ -58,15 +58,15 @@ class CampaignDataGainLadder(BaseStruct): class StageDataDisplayRewards(BaseStruct): - type_: str = field(name="type") - id_: str = field(name="id") + type_: str = field(name='type') + id_: str = field(name='id') dropType: int class StageDataDisplayDetailRewards(BaseStruct): occPercent: int - type_: str = field(name="type") - id_: str = field(name="id") + type_: str = field(name='type') + id_: str = field(name='id') dropType: int @@ -93,19 +93,19 @@ class CampaignGroupData(BaseStruct): class CampaignRegionData(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') isUnknwon: int class CampaignZoneData(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') name: str regionId: str templateId: str class CampaignMissionData(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') sortId: int param: List[str] description: str @@ -145,7 +145,7 @@ class CampaignTrainingAllOpenTimeData(BaseStruct): class CampaignTable(BaseStruct): - __version__ = "23-10-31-11-47-45-d410ff" + __version__ = '23-10-31-11-47-45-d410ff' campaigns: Dict[str, CampaignData] campaignGroups: Dict[str, CampaignGroupData] diff --git a/ArknightsUID/utils/models/gamedata/ChapterTable.py b/ArknightsUID/utils/models/gamedata/ChapterTable.py index 1ec54d9..5ce6e23 100644 --- a/ArknightsUID/utils/models/gamedata/ChapterTable.py +++ b/ArknightsUID/utils/models/gamedata/ChapterTable.py @@ -15,6 +15,6 @@ class ChapterData(BaseStruct): class ChapterTable(BaseStruct): - __version__ = "23-10-31-11-47-45-d410ff" + __version__ = '23-10-31-11-47-45-d410ff' chapters: Dict[str, ChapterData] diff --git a/ArknightsUID/utils/models/gamedata/CharMetaTable.py b/ArknightsUID/utils/models/gamedata/CharMetaTable.py index ff33276..4535c5f 100644 --- a/ArknightsUID/utils/models/gamedata/CharMetaTable.py +++ b/ArknightsUID/utils/models/gamedata/CharMetaTable.py @@ -6,9 +6,9 @@ from msgspec import field class ItemBundle(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') count: int - type_: str = field(name="type") + type_: str = field(name='type') class SpCharMissionData(BaseStruct): @@ -21,7 +21,7 @@ class SpCharMissionData(BaseStruct): class CharMetaTable(BaseStruct): - __version__ = "23-10-31-11-47-45-d410ff" + __version__ = '23-10-31-11-47-45-d410ff' spCharGroups: Dict[str, List[str]] spCharMissions: Dict[str, Dict[str, SpCharMissionData]] diff --git a/ArknightsUID/utils/models/gamedata/CharPatchTable.py b/ArknightsUID/utils/models/gamedata/CharPatchTable.py index f555124..cd8ee24 100644 --- a/ArknightsUID/utils/models/gamedata/CharPatchTable.py +++ b/ArknightsUID/utils/models/gamedata/CharPatchTable.py @@ -37,7 +37,7 @@ class CharacterDataTraitDataBundle(BaseStruct): class AttributesData(BaseStruct): maxHp: int atk: int - def_: int = field(name="def") + def_: int = field(name='def') magicResistance: float cost: int blockCnt: int @@ -65,9 +65,9 @@ class CharacterDataAttributesKeyFrame(BaseStruct): class ItemBundle(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') count: int - type_: str = field(name="type") + type_: str = field(name='type') class CharacterDataPhaseData(BaseStruct): @@ -129,7 +129,7 @@ class ExternalBuff(BaseStruct): class CharacterDataPotentialRank(BaseStruct): - type_: int = field(name="type") + type_: int = field(name='type') description: str buff: Union[ExternalBuff, None] equivalentCost: Union[ItemBundle, None] @@ -191,7 +191,7 @@ class CharPatchDataPatchDetailInfo(BaseStruct): class CharPatchTable(BaseStruct): - __version__ = "23-10-31-11-47-45-d410ff" + __version__ = '23-10-31-11-47-45-d410ff' infos: Dict[str, CharPatchDataPatchInfo] patchChars: Dict[str, CharacterData] diff --git a/ArknightsUID/utils/models/gamedata/CharacterTable.py b/ArknightsUID/utils/models/gamedata/CharacterTable.py index ac2ba3b..46ab0a6 100644 --- a/ArknightsUID/utils/models/gamedata/CharacterTable.py +++ b/ArknightsUID/utils/models/gamedata/CharacterTable.py @@ -33,7 +33,7 @@ class CharacterDataTraitDataBundle(BaseStruct): class AttributesData(BaseStruct): maxHp: int atk: int - def_: int = field(name="def") + def_: int = field(name='def') magicResistance: float cost: int blockCnt: int @@ -61,9 +61,9 @@ class CharacterDataAttributesKeyFrame(BaseStruct): class ItemBundle(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') count: int - type_: str = field(name="type") + type_: str = field(name='type') class CharacterDataPhaseData(BaseStruct): @@ -126,7 +126,7 @@ class ExternalBuff(BaseStruct): class CharacterDataPotentialRank(BaseStruct): - type_: int = field(name="type") + type_: int = field(name='type') description: str buff: Union[ExternalBuff, None] equivalentCost: Union[ItemBundle, None] @@ -175,7 +175,7 @@ class CharacterData(BaseStruct): class CharacterTable(BaseStruct): - __version__ = "23-10-31-11-47-45-d410ff" + __version__ = '23-10-31-11-47-45-d410ff' chars: Dict[str, CharacterData] diff --git a/ArknightsUID/utils/models/gamedata/CharmTable.py b/ArknightsUID/utils/models/gamedata/CharmTable.py index 6ebb74f..f2efaed 100644 --- a/ArknightsUID/utils/models/gamedata/CharmTable.py +++ b/ArknightsUID/utils/models/gamedata/CharmTable.py @@ -31,7 +31,7 @@ class RuneData(BaseStruct): class RuneTablePackedRuneData(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') points: float mutexGroupKey: Union[str, None] description: str @@ -39,7 +39,7 @@ class RuneTablePackedRuneData(BaseStruct): class CharmItemData(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') sort: int name: str icon: str @@ -58,6 +58,6 @@ class CharmItemData(BaseStruct): class CharmTable(BaseStruct): - __version__ = "23-10-31-11-47-45-d410ff" + __version__ = '23-10-31-11-47-45-d410ff' charmList: List[CharmItemData] diff --git a/ArknightsUID/utils/models/gamedata/CharwordTable.py b/ArknightsUID/utils/models/gamedata/CharwordTable.py index 794fecd..4c208e2 100644 --- a/ArknightsUID/utils/models/gamedata/CharwordTable.py +++ b/ArknightsUID/utils/models/gamedata/CharwordTable.py @@ -36,7 +36,7 @@ class VoiceLangInfoData(BaseStruct): class VoiceLangData(BaseStruct): wordkeys: List[str] charId: str - dict_: Dict[str, VoiceLangInfoData] = field(name="dict") + dict_: Dict[str, VoiceLangInfoData] = field(name='dict') class VoiceLangTypeData(BaseStruct): @@ -55,7 +55,7 @@ class NewVoiceTimeData(BaseStruct): class CharwordTable(BaseStruct): - __version__ = "23-10-31-11-47-45-d410ff" + __version__ = '23-10-31-11-47-45-d410ff' charWords: Dict[str, CharWordData] voiceLangDict: Dict[str, VoiceLangData] diff --git a/ArknightsUID/utils/models/gamedata/CheckinTable.py b/ArknightsUID/utils/models/gamedata/CheckinTable.py index 92861b9..12415b9 100644 --- a/ArknightsUID/utils/models/gamedata/CheckinTable.py +++ b/ArknightsUID/utils/models/gamedata/CheckinTable.py @@ -6,9 +6,9 @@ from msgspec import field class ItemBundle(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') count: int - type_: str = field(name="type") + type_: str = field(name='type') class MonthlySignInData(BaseStruct): @@ -36,7 +36,7 @@ class MonthlyDailyBonusGroup(BaseStruct): class CheckinTable(BaseStruct): - __version__ = "23-10-31-11-47-45-d410ff" + __version__ = '23-10-31-11-47-45-d410ff' groups: Dict[str, MonthlySignInGroupData] monthlySubItem: Dict[str, List[MonthlyDailyBonusGroup]] diff --git a/ArknightsUID/utils/models/gamedata/ClimbTowerTable.py b/ArknightsUID/utils/models/gamedata/ClimbTowerTable.py index f6ea8b2..846dc99 100644 --- a/ArknightsUID/utils/models/gamedata/ClimbTowerTable.py +++ b/ArknightsUID/utils/models/gamedata/ClimbTowerTable.py @@ -6,9 +6,9 @@ from msgspec import field class ItemBundle(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') count: int - type_: str = field(name="type") + type_: str = field(name='type') class ClimbTowerSingleTowerDataClimbTowerTaskRewardData(BaseStruct): @@ -17,7 +17,7 @@ class ClimbTowerSingleTowerDataClimbTowerTaskRewardData(BaseStruct): class ClimbTowerSingleTowerData(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') sortId: int stageNum: int name: str @@ -42,29 +42,29 @@ class ClimbTowerSingleTowerData(BaseStruct): class WeightItemBundle(BaseStruct): - id_: str = field(name="id") - type_: str = field(name="type") + id_: str = field(name='id') + type_: str = field(name='type') dropType: str count: int weight: int class StageDataDisplayRewards(BaseStruct): - type_: str = field(name="type") - id_: str = field(name="id") + type_: str = field(name='type') + id_: str = field(name='id') dropType: int class StageDataDisplayDetailRewards(BaseStruct): occPercent: int - type_: str = field(name="type") - id_: str = field(name="id") + type_: str = field(name='type') + id_: str = field(name='id') dropType: int class ClimbTowerDropDisplayInfo(BaseStruct): itemId: str - type_: int = field(name="type") + type_: int = field(name='type') maxCount: int minCount: int @@ -77,7 +77,7 @@ class ClimbTowerLevelDropInfo(BaseStruct): class ClimbTowerSingleLevelData(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') levelId: str towerId: str layerNum: int @@ -90,7 +90,7 @@ class ClimbTowerSingleLevelData(BaseStruct): class ClimbTowerTacticalBuffData(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') desc: str profession: str isDefaultActive: bool @@ -124,7 +124,7 @@ class RuneData(BaseStruct): class RuneTablePackedRuneData(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') points: float mutexGroupKey: Union[str, None] description: str @@ -132,8 +132,8 @@ class RuneTablePackedRuneData(BaseStruct): class ClimbTowerMainCardData(BaseStruct): - id_: str = field(name="id") - type_: str = field(name="type") + id_: str = field(name='id') + type_: str = field(name='type') linkedTowerId: Union[str, None] sortId: int name: str @@ -144,7 +144,7 @@ class ClimbTowerMainCardData(BaseStruct): class ClimbTowerSubCardData(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') mainCardId: str sortId: int name: str @@ -154,7 +154,7 @@ class ClimbTowerSubCardData(BaseStruct): class ClimbTowerCurseCardData(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') towerIdList: List[str] name: str desc: str @@ -162,7 +162,7 @@ class ClimbTowerCurseCardData(BaseStruct): class ClimbTowerSeasonInfoData(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') name: str startTs: int endTs: int @@ -196,16 +196,16 @@ class ClimbTowerRewardInfo(BaseStruct): class MissionDisplayRewards(BaseStruct): - type_: str = field(name="type") - id_: str = field(name="id") + type_: str = field(name='type') + id_: str = field(name='id') count: int class MissionData(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') sortId: int description: str - type_: str = field(name="type") + type_: str = field(name='type') itemBgType: str preMissionIds: Union[List[str], None] template: str @@ -228,9 +228,9 @@ class ClimbTowerMissionData(MissionData): class MissionGroup(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') title: Union[str, None] - type_: str = field(name="type") + type_: str = field(name='type') preMissionGroup: Union[str, None] period: Union[List[int], None] rewards: List[MissionDisplayRewards] @@ -240,7 +240,7 @@ class MissionGroup(BaseStruct): class ClimbTowerTable(BaseStruct): - __version__ = "23-10-31-11-47-45-d410ff" + __version__ = '23-10-31-11-47-45-d410ff' towers: Dict[str, ClimbTowerSingleTowerData] levels: Dict[str, ClimbTowerSingleLevelData] diff --git a/ArknightsUID/utils/models/gamedata/ClueData.py b/ArknightsUID/utils/models/gamedata/ClueData.py index 076658c..0a3f862 100644 --- a/ArknightsUID/utils/models/gamedata/ClueData.py +++ b/ArknightsUID/utils/models/gamedata/ClueData.py @@ -21,7 +21,7 @@ class MeetingClueDataReceiveTimeBonus(BaseStruct): class ClueData(BaseStruct): - __version__ = "23-10-31-11-47-45-d410ff" + __version__ = '23-10-31-11-47-45-d410ff' clues: List[MeetingClueDataClueData] clueTypes: List[MeetingClueDataClueTypeData] diff --git a/ArknightsUID/utils/models/gamedata/CrisisTable.py b/ArknightsUID/utils/models/gamedata/CrisisTable.py index e68974b..941433d 100644 --- a/ArknightsUID/utils/models/gamedata/CrisisTable.py +++ b/ArknightsUID/utils/models/gamedata/CrisisTable.py @@ -6,9 +6,9 @@ from msgspec import field class ItemBundle(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') count: int - type_: str = field(name="type") + type_: str = field(name='type') class StringKeyFrames(BaseStruct): @@ -34,7 +34,7 @@ class CrisisMapRankInfo(BaseStruct): class CrisisTable(BaseStruct): - __version__ = "23-10-31-11-47-45-d410ff" + __version__ = '23-10-31-11-47-45-d410ff' seasonInfo: List[CrisisClientDataSeasonInfo] meta: str diff --git a/ArknightsUID/utils/models/gamedata/CrisisV2Table.py b/ArknightsUID/utils/models/gamedata/CrisisV2Table.py index 6a3d661..ed41d4c 100644 --- a/ArknightsUID/utils/models/gamedata/CrisisV2Table.py +++ b/ArknightsUID/utils/models/gamedata/CrisisV2Table.py @@ -7,9 +7,9 @@ from msgspec import field class ItemBundle(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') count: int - type_: str = field(name="type") + type_: str = field(name='type') class StringKeyFrames(BaseStruct): @@ -31,13 +31,13 @@ class CrisisV2ConstData(BaseStruct): class appraiseType(Enum): - RANK_D = "RANK_D" - RANK_C = "RANK_C" - RANK_B = "RANK_B" - RANK_A = "RANK_A" - RANK_S = "RANK_S" - RANK_SS = "RANK_SS" - RANK_SSS = "RANK_SSS" + RANK_D = 'RANK_D' + RANK_C = 'RANK_C' + RANK_B = 'RANK_B' + RANK_A = 'RANK_A' + RANK_S = 'RANK_S' + RANK_SS = 'RANK_SS' + RANK_SSS = 'RANK_SSS' class CrisisV2ScoreLevelToAppraiseData(BaseStruct): @@ -45,7 +45,7 @@ class CrisisV2ScoreLevelToAppraiseData(BaseStruct): class CrisisV2Table(BaseStruct): - __version__ = "23-10-31-11-47-45-d410ff" + __version__ = '23-10-31-11-47-45-d410ff' seasonInfoDataMap: Dict scoreLevelToAppraiseDataMap: Dict[str, CrisisV2ScoreLevelToAppraiseData] diff --git a/ArknightsUID/utils/models/gamedata/DisplayMetaTable.py b/ArknightsUID/utils/models/gamedata/DisplayMetaTable.py index 1d53f2f..e92453c 100644 --- a/ArknightsUID/utils/models/gamedata/DisplayMetaTable.py +++ b/ArknightsUID/utils/models/gamedata/DisplayMetaTable.py @@ -42,8 +42,8 @@ class HomeBackgroundSingleData(BaseStruct): class HomeBackgroundThemeData(BaseStruct): - id_: str = field(name="id") - type_: str = field(name="type") + id_: str = field(name='id') + type_: str = field(name='type') sortId: int startTime: int tmName: str @@ -61,7 +61,7 @@ class ThemeLimitInfo(BaseStruct): class HomeBackgroundThemeLimitData(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') limitInfos: List[ThemeLimitInfo] @@ -76,7 +76,7 @@ class HomeBackgroundData(BaseStruct): class DisplayMetaTable(BaseStruct): - __version__ = "23-10-31-11-47-45-d410ff" + __version__ = '23-10-31-11-47-45-d410ff' playerAvatarData: PlayerAvatarData homeBackgroundData: HomeBackgroundData diff --git a/ArknightsUID/utils/models/gamedata/EnemyHandbookTable.py b/ArknightsUID/utils/models/gamedata/EnemyHandbookTable.py index d0c071f..c4464dd 100644 --- a/ArknightsUID/utils/models/gamedata/EnemyHandbookTable.py +++ b/ArknightsUID/utils/models/gamedata/EnemyHandbookTable.py @@ -31,14 +31,14 @@ class EnemyHandBookData(BaseStruct): class EnemyHandbookLevelInfoDataRangePair(BaseStruct): - min_: float = field(name="min") - max_: float = field(name="max") + min_: float = field(name='min') + max_: float = field(name='max') class EnemyHandbookLevelInfoData(BaseStruct): classLevel: str attack: EnemyHandbookLevelInfoDataRangePair - def_: EnemyHandbookLevelInfoDataRangePair = field(name="def") + def_: EnemyHandbookLevelInfoDataRangePair = field(name='def') magicRes: EnemyHandbookLevelInfoDataRangePair maxHP: EnemyHandbookLevelInfoDataRangePair moveSpeed: EnemyHandbookLevelInfoDataRangePair @@ -48,13 +48,13 @@ class EnemyHandbookLevelInfoData(BaseStruct): class EnemyHandbookRaceData(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') raceName: str sortId: int class EnemyHandbookTable(BaseStruct): - __version__ = "23-10-31-11-47-45-d410ff" + __version__ = '23-10-31-11-47-45-d410ff' levelInfoList: List[EnemyHandbookLevelInfoData] enemyData: Dict[str, EnemyHandBookData] diff --git a/ArknightsUID/utils/models/gamedata/FavorTable.py b/ArknightsUID/utils/models/gamedata/FavorTable.py index 901573b..4863e7c 100644 --- a/ArknightsUID/utils/models/gamedata/FavorTable.py +++ b/ArknightsUID/utils/models/gamedata/FavorTable.py @@ -15,7 +15,7 @@ class FavorDataFrames(BaseStruct): class FavorTable(BaseStruct): - __version__ = "23-10-31-11-47-45-d410ff" + __version__ = '23-10-31-11-47-45-d410ff' maxFavor: int favorFrames: List[FavorDataFrames] diff --git a/ArknightsUID/utils/models/gamedata/GachaTable.py b/ArknightsUID/utils/models/gamedata/GachaTable.py index 302a56a..18bb9d5 100644 --- a/ArknightsUID/utils/models/gamedata/GachaTable.py +++ b/ArknightsUID/utils/models/gamedata/GachaTable.py @@ -32,9 +32,9 @@ class GachaDataCarouselData(BaseStruct): class ItemBundle(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') count: int - type_: str = field(name="type") + type_: str = field(name='type') class GachaDataRecruitRange(BaseStruct): @@ -131,7 +131,7 @@ class GachaDataFesGachaPoolRelateItem(BaseStruct): class GachaTable(BaseStruct): - __version__ = "23-10-31-11-47-45-d410ff" + __version__ = '23-10-31-11-47-45-d410ff' gachaTags: List[GachaTag] carousel: List[GachaDataCarouselData] diff --git a/ArknightsUID/utils/models/gamedata/GamedataConst.py b/ArknightsUID/utils/models/gamedata/GamedataConst.py index e8c0fb2..3eb6c8e 100644 --- a/ArknightsUID/utils/models/gamedata/GamedataConst.py +++ b/ArknightsUID/utils/models/gamedata/GamedataConst.py @@ -6,9 +6,9 @@ from msgspec import field class ItemBundle(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') count: int - type_: str = field(name="type") + type_: str = field(name='type') class GameDataConstsCharAssistRefreshTimeState(BaseStruct): @@ -23,7 +23,7 @@ class TermDescriptionData(BaseStruct): class GamedataConst(BaseStruct): - __version__ = "23-10-31-11-47-45-d410ff" + __version__ = '23-10-31-11-47-45-d410ff' addedRewardDisplayZone: str advancedGachaCrystalCost: int diff --git a/ArknightsUID/utils/models/gamedata/HandbookInfoTable.py b/ArknightsUID/utils/models/gamedata/HandbookInfoTable.py index d668488..5c5b061 100644 --- a/ArknightsUID/utils/models/gamedata/HandbookInfoTable.py +++ b/ArknightsUID/utils/models/gamedata/HandbookInfoTable.py @@ -13,9 +13,9 @@ class HandbookUnlockParam(BaseStruct): class ItemBundle(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') count: int - type_: str = field(name="type") + type_: str = field(name='type') class HandbookStageTimeData(BaseStruct): @@ -43,11 +43,11 @@ class HandbookStoryStageData(BaseStruct): class HandbookDisplayCondition(BaseStruct): charId: str conditionCharId: str - type_: str = field(name="type") + type_: str = field(name='type') class HandbookTeamMission(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') sort: int powerId: str powerName: str @@ -122,7 +122,7 @@ class HandbookInfoData(BaseStruct): class HandbookInfoTable(BaseStruct): - __version__ = "23-10-31-11-47-45-d410ff" + __version__ = '23-10-31-11-47-45-d410ff' handbookDict: Dict[str, HandbookInfoData] npcDict: Dict[str, NPCData] diff --git a/ArknightsUID/utils/models/gamedata/HandbookTable.py b/ArknightsUID/utils/models/gamedata/HandbookTable.py index c1e655b..e50e377 100644 --- a/ArknightsUID/utils/models/gamedata/HandbookTable.py +++ b/ArknightsUID/utils/models/gamedata/HandbookTable.py @@ -40,6 +40,6 @@ class CharHandbook(BaseStruct): class HandbookTable(BaseStruct): - __version__ = "23-10-31-11-47-45-d410ff" + __version__ = '23-10-31-11-47-45-d410ff' char_102_texas: CharHandbook diff --git a/ArknightsUID/utils/models/gamedata/HandbookTeamTable.py b/ArknightsUID/utils/models/gamedata/HandbookTeamTable.py index bfc50bd..ba6bb04 100644 --- a/ArknightsUID/utils/models/gamedata/HandbookTeamTable.py +++ b/ArknightsUID/utils/models/gamedata/HandbookTeamTable.py @@ -15,6 +15,6 @@ class HandbookTeam(BaseStruct): class HandbookTeamTable(BaseStruct): - __version__ = "23-10-31-11-47-45-d410ff" + __version__ = '23-10-31-11-47-45-d410ff' team: Dict[str, HandbookTeam] diff --git a/ArknightsUID/utils/models/gamedata/ItemTable.py b/ArknightsUID/utils/models/gamedata/ItemTable.py index 9a17b52..3d69282 100644 --- a/ArknightsUID/utils/models/gamedata/ItemTable.py +++ b/ArknightsUID/utils/models/gamedata/ItemTable.py @@ -16,9 +16,9 @@ class ItemDataBuildingProductInfo(BaseStruct): class ItemBundle(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') count: int - type_: str = field(name="type") + type_: str = field(name='type') class FavorCharacterInfo(BaseStruct): @@ -47,13 +47,13 @@ class UniCollectionInfo(BaseStruct): class ApSupplyFeature(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') ap: int hasTs: bool class ExpItemFeature(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') gainExp: int @@ -83,7 +83,7 @@ class ItemData(BaseStruct): class CharVoucherItemFeature(BaseStruct): displayType: int - id_: str = field(name="id") + id_: str = field(name='id') class ServerItemReminderMailData(BaseStruct): @@ -98,7 +98,7 @@ class ServerItemReminderInfo(BaseStruct): class ItemTable(BaseStruct): - __version__ = "23-10-31-11-47-45-d410ff" + __version__ = '23-10-31-11-47-45-d410ff' activityPotentialCharacters: Dict[str, ActivityPotentialCharacterInfo] apSupplies: Dict[str, ApSupplyFeature] diff --git a/ArknightsUID/utils/models/gamedata/MedalTable.py b/ArknightsUID/utils/models/gamedata/MedalTable.py index 49cd25b..00b8c89 100644 --- a/ArknightsUID/utils/models/gamedata/MedalTable.py +++ b/ArknightsUID/utils/models/gamedata/MedalTable.py @@ -8,13 +8,13 @@ from msgspec import field class MedalExpireTime(BaseStruct): start: int end: int - type_: str = field(name="type") + type_: str = field(name='type') class ItemBundle(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') count: int - type_: str = field(name="type") + type_: str = field(name='type') class MedalGroupData(BaseStruct): @@ -61,7 +61,7 @@ class MedalPerData(BaseStruct): class MedalTable(BaseStruct): - __version__ = "23-10-31-11-47-45-d410ff" + __version__ = '23-10-31-11-47-45-d410ff' medalList: List[MedalPerData] medalTypeData: Dict[str, MedalTypeData] diff --git a/ArknightsUID/utils/models/gamedata/MissionTable.py b/ArknightsUID/utils/models/gamedata/MissionTable.py index 72387c4..518aef1 100644 --- a/ArknightsUID/utils/models/gamedata/MissionTable.py +++ b/ArknightsUID/utils/models/gamedata/MissionTable.py @@ -6,8 +6,8 @@ from msgspec import field class MissionDisplayRewards(BaseStruct): - type_: str = field(name="type") - id_: str = field(name="id") + type_: str = field(name='type') + id_: str = field(name='id') count: int @@ -28,26 +28,26 @@ class MissionWeeklyRewardConf(BaseStruct): beginTime: int endTime: int groupId: str - id_: str = field(name="id") + id_: str = field(name='id') periodicalPointCost: int - type_: str = field(name="type") + type_: str = field(name='type') sortIndex: int rewards: List[MissionDisplayRewards] class MissionDailyRewardConf(BaseStruct): groupId: str - id_: str = field(name="id") + id_: str = field(name='id') periodicalPointCost: int - type_: str = field(name="type") + type_: str = field(name='type') sortIndex: int rewards: List[MissionDisplayRewards] class MissionGroup(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') title: Union[str, None] - type_: str = field(name="type") + type_: str = field(name='type') preMissionGroup: Union[str, None] period: Union[List[int], None] rewards: Union[List[MissionDisplayRewards], None] @@ -57,10 +57,10 @@ class MissionGroup(BaseStruct): class MissionData(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') sortId: int description: str - type_: str = field(name="type") + type_: str = field(name='type') itemBgType: str preMissionIds: Union[List[str], None] template: str @@ -78,7 +78,7 @@ class MissionData(BaseStruct): class MissionTable(BaseStruct): - __version__ = "23-10-31-11-47-45-d410ff" + __version__ = '23-10-31-11-47-45-d410ff' missions: Dict[str, MissionData] missionGroups: Dict[str, MissionGroup] diff --git a/ArknightsUID/utils/models/gamedata/OpenServerTable.py b/ArknightsUID/utils/models/gamedata/OpenServerTable.py index 8dcba55..2d86b68 100644 --- a/ArknightsUID/utils/models/gamedata/OpenServerTable.py +++ b/ArknightsUID/utils/models/gamedata/OpenServerTable.py @@ -6,21 +6,21 @@ from msgspec import field class RewardItem(BaseStruct): - type_: str = field(name="type") - id_: str = field(name="id") + type_: str = field(name='type') + id_: str = field(name='id') count: int sortId: int class ItemBundle(BaseStruct): - type_: str = field(name="type") - id_: str = field(name="id") + type_: str = field(name='type') + id_: str = field(name='id') count: int class MissionDisplayRewards(BaseStruct): - type_: str = field(name="type") - id_: str = field(name="id") + type_: str = field(name='type') + id_: str = field(name='id') count: int @@ -42,7 +42,7 @@ class ReturnCheckinData(BaseStruct): class ReturnLongTermTaskData(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') sortId: int template: str param: List[str] @@ -53,7 +53,7 @@ class ReturnLongTermTaskData(BaseStruct): class ReturnDailyTaskData(BaseStruct): groupId: str - id_: str = field(name="id") + id_: str = field(name='id') groupSortId: int taskSortId: int template: str @@ -105,10 +105,10 @@ class ChainLoginData(BaseStruct): class MissionData(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') sortId: int description: str - type_: str = field(name="type") + type_: str = field(name='type') itemBgType: str preMissionIds: None template: str @@ -126,9 +126,9 @@ class MissionData(BaseStruct): class MissionGroup(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') title: None - type_: str = field(name="type") + type_: str = field(name='type') preMissionGroup: None period: None rewards: None @@ -145,7 +145,7 @@ class OpenServerData(BaseStruct): class OpenServerScheduleItem(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') startTs: int endTs: int totalCheckinDescption: str @@ -269,7 +269,7 @@ class OpenServerNewbieCheckInPackage(BaseStruct): class OpenServerTable(BaseStruct): - __version__ = "23-10-31-11-47-45-d410ff" + __version__ = '23-10-31-11-47-45-d410ff' schedule: List[OpenServerScheduleItem] dataMap: Dict[str, OpenServerData] diff --git a/ArknightsUID/utils/models/gamedata/PlayerAvatarTable.py b/ArknightsUID/utils/models/gamedata/PlayerAvatarTable.py index f73248a..d1590a4 100644 --- a/ArknightsUID/utils/models/gamedata/PlayerAvatarTable.py +++ b/ArknightsUID/utils/models/gamedata/PlayerAvatarTable.py @@ -21,7 +21,7 @@ class PlayerAvatarPerData(BaseStruct): class PlayerAvatarTable(BaseStruct): - __version__ = "23-10-31-11-47-45-d410ff" + __version__ = '23-10-31-11-47-45-d410ff' avatarList: List[PlayerAvatarPerData] avatarTypeData: Dict[str, PlayerAvatarGroupData] diff --git a/ArknightsUID/utils/models/gamedata/RangeTable.py b/ArknightsUID/utils/models/gamedata/RangeTable.py index eb75df4..2436c25 100644 --- a/ArknightsUID/utils/models/gamedata/RangeTable.py +++ b/ArknightsUID/utils/models/gamedata/RangeTable.py @@ -18,13 +18,13 @@ class ObscuredRect(BaseStruct): class Stage(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') direction: int grids: List[GridPosition] boundingBoxes: Union[List[ObscuredRect], None] = None class RangeTable(BaseStruct): - __version__ = "23-10-31-11-47-45-d410ff" + __version__ = '23-10-31-11-47-45-d410ff' range_: Dict[str, Stage] diff --git a/ArknightsUID/utils/models/gamedata/ReplicateTable.py b/ArknightsUID/utils/models/gamedata/ReplicateTable.py index 8e75b2a..bfeb9f8 100644 --- a/ArknightsUID/utils/models/gamedata/ReplicateTable.py +++ b/ArknightsUID/utils/models/gamedata/ReplicateTable.py @@ -6,9 +6,9 @@ from msgspec import field class ItemBundle(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') count: int - type_: str = field(name="type") + type_: str = field(name='type') class ReplicateData(BaseStruct): @@ -21,6 +21,6 @@ class ReplicateList(BaseStruct): class ReplicateTable(BaseStruct): - __version__ = "23-10-31-11-47-45-d410ff" + __version__ = '23-10-31-11-47-45-d410ff' replicate: Dict[str, ReplicateList] diff --git a/ArknightsUID/utils/models/gamedata/RetroTable.py b/ArknightsUID/utils/models/gamedata/RetroTable.py index 6cf06c0..05e62e3 100644 --- a/ArknightsUID/utils/models/gamedata/RetroTable.py +++ b/ArknightsUID/utils/models/gamedata/RetroTable.py @@ -6,14 +6,14 @@ from msgspec import field class ItemBundle(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') count: int - type_: str = field(name="type") + type_: str = field(name='type') class StageDataDisplayRewards(BaseStruct): - type_: str = field(name="type") - id_: str = field(name="id") + type_: str = field(name='type') + id_: str = field(name='id') dropType: int @@ -32,8 +32,8 @@ class Act17sideDataChoiceNodeOptionData(BaseStruct): class StageDataDisplayDetailRewards(BaseStruct): occPercent: int - type_: str = field(name="type") - id_: str = field(name="id") + type_: str = field(name='type') + id_: str = field(name='id') dropType: int CannotGetPercent: Union[float, None] = None GetPercent: Union[float, None] = None @@ -69,7 +69,7 @@ class Act17sideDataMainlineChapterData(BaseStruct): chapterDes: str chapterIcon: str unlockDes: str - id_: str = field(name="id") + id_: str = field(name='id') class RunesSelector(BaseStruct): @@ -92,7 +92,7 @@ class TechTreeBranchRunes(BaseStruct): class BranchRuneData(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') points: float mutexGroupKey: None description: str @@ -260,7 +260,7 @@ class RuneData(BaseStruct): class RuneTablePackedRuneData(BaseStruct): description: str - id_: str = field(name="id") + id_: str = field(name='id') points: float runes: List[RuneData] mutexGroupKey: Union[str, None] = None @@ -316,8 +316,8 @@ class RetroTrailRuleData(BaseStruct): class WeightItemBundle(BaseStruct): count: int dropType: str - id_: str = field(name="id") - type_: str = field(name="type") + id_: str = field(name='id') + type_: str = field(name='type') weight: int @@ -401,7 +401,7 @@ class RetroTrailData(BaseStruct): class RetroActData(BaseStruct): retroId: str - type_: int = field(name="type") + type_: int = field(name='type') linkedActId: List[str] startTime: int trailStartTime: int @@ -430,7 +430,7 @@ class RetroStageOverrideInfo(BaseStruct): class RetroTable(BaseStruct): - __version__ = "23-10-31-11-47-45-d410ff" + __version__ = '23-10-31-11-47-45-d410ff' customData: ActivityCustomData initRetroCoin: int diff --git a/ArknightsUID/utils/models/gamedata/RoguelikeTable.py b/ArknightsUID/utils/models/gamedata/RoguelikeTable.py index 5c81268..0bd0a4b 100644 --- a/ArknightsUID/utils/models/gamedata/RoguelikeTable.py +++ b/ArknightsUID/utils/models/gamedata/RoguelikeTable.py @@ -28,12 +28,12 @@ class RoguelikeOuterBuff(BaseStruct): class RoguelikeOutBuffData(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') buffs: Dict[str, RoguelikeOuterBuff] class RoguelikeEndingData(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') backgroundId: str name: str description: str @@ -43,7 +43,7 @@ class RoguelikeEndingData(BaseStruct): class RoguelikeModeData(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') name: str canUnlockItem: int scoreFactor: float @@ -56,24 +56,24 @@ class RoguelikeModeData(BaseStruct): class RoguelikeChoiceSceneData(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') title: str description: str background: str class RoguelikeChoiceData(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') title: str description: Union[str, None] - type_: str = field(name="type") + type_: str = field(name='type') nextSceneId: Union[str, None] icon: Union[str, None] param: Dict[str, object] class RoguelikeZoneData(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') name: str description: str endingDescription: str @@ -82,7 +82,7 @@ class RoguelikeZoneData(BaseStruct): class RoguelikeStageData(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') linkedStageId: str levelId: str code: str @@ -96,12 +96,12 @@ class RoguelikeStageData(BaseStruct): class RoguelikeRelicFeature(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') buffs: List[RoguelikeBuff] class RoguelikeUpgradeTicketFeature(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') profession: int rarity: int professionList: List[str] @@ -109,7 +109,7 @@ class RoguelikeUpgradeTicketFeature(BaseStruct): class RoguelikeRecruitTicketFeature(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') profession: int rarity: int professionList: List[str] @@ -125,13 +125,13 @@ class RelicStableUnlockParam(BaseStruct): class RoguelikeItemData(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') name: str description: Union[str, None] usage: str obtainApproach: str iconId: str - type_: str = field(name="type") + type_: str = field(name='type') rarity: str value: int sortId: int @@ -193,7 +193,7 @@ class RoguelikeConstTable(BaseStruct): class RoguelikeTable(BaseStruct): - __version__ = "23-10-31-11-47-45-d410ff" + __version__ = '23-10-31-11-47-45-d410ff' constTable: RoguelikeConstTable itemTable: RoguelikeItemTable diff --git a/ArknightsUID/utils/models/gamedata/RoguelikeTopicTable.py b/ArknightsUID/utils/models/gamedata/RoguelikeTopicTable.py index 1471571..d40ac4a 100644 --- a/ArknightsUID/utils/models/gamedata/RoguelikeTopicTable.py +++ b/ArknightsUID/utils/models/gamedata/RoguelikeTopicTable.py @@ -21,7 +21,7 @@ class RoguelikeTopicConfig(BaseStruct): class RoguelikeTopicBasicData(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') name: str startTime: int disappearTimeOnMainScreen: int @@ -68,7 +68,7 @@ class RoguelikeTopicEnroll(BaseStruct): class RoguelikeTopicBP(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') level: int tokenNum: int nextTokenNum: int @@ -88,9 +88,9 @@ class RoguelikeTopicMilestoneUpdateData(BaseStruct): class ItemBundle(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') count: int - type_: str = field(name="type") + type_: str = field(name='type') class RoguelikeTopicBPGrandPrize(BaseStruct): @@ -111,7 +111,7 @@ class RoguelikeTopicBPGrandPrize(BaseStruct): class RoguelikeTopicMonthMission(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') taskName: str taskClass: str innerClassWeight: int @@ -122,7 +122,7 @@ class RoguelikeTopicMonthMission(BaseStruct): class RoguelikeTopicMonthSquad(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') teamName: str teamSubName: Union[str, None] teamFlavorDesc: Union[str, None] @@ -292,8 +292,8 @@ class ActArchiveBuffData(BaseStruct): class ActArchiveTotemItemData(BaseStruct): - id_: str = field(name="id") - type_: int = field(name="type") + id_: str = field(name='id') + type_: int = field(name='type') enrollConditionId: Union[str, None] sortId: int @@ -303,7 +303,7 @@ class ActArchiveTotemData(BaseStruct): class ActArchiveChaosItemData(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') isHidden: bool enrollId: Union[str, None] sortId: int @@ -412,7 +412,7 @@ class RoguelikeGameInitData(BaseStruct): class RoguelikeGameStageData(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') linkedStageId: str levelId: str code: str @@ -431,7 +431,7 @@ class RoguelikeGameStageData(BaseStruct): class RoguelikeGameZoneData(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') name: str clockPerformance: Union[str, None] displayTime: Union[str, None] @@ -453,7 +453,7 @@ class RoguelikeGameTrapData(BaseStruct): class RoguelikeGameRecruitTicketData(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') profession: int rarity: int professionList: List[str] @@ -464,7 +464,7 @@ class RoguelikeGameRecruitTicketData(BaseStruct): class RoguelikeGameUpgradeTicketData(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') profession: int rarity: int professionList: List[str] @@ -472,7 +472,7 @@ class RoguelikeGameUpgradeTicketData(BaseStruct): class RoguelikeGameCustomTicketData(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') subType: str discardText: str @@ -489,7 +489,7 @@ class RoguelikeBuff(BaseStruct): class RoguelikeGameRelicData(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') buffs: List[RoguelikeBuff] @@ -500,13 +500,13 @@ class RoguelikeGameRelicCheckParam(BaseStruct): class RoguelikeGameRelicParamData(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') checkCharBoxTypes: List[str] checkCharBoxParams: List[RoguelikeGameRelicCheckParam] class RoguelikeGameRecruitGrpData(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') iconId: str name: str desc: str @@ -514,7 +514,7 @@ class RoguelikeGameRecruitGrpData(BaseStruct): class RoguelikeChoiceDisplayData(BaseStruct): - type_: str = field(name="type") + type_: str = field(name='type') funcIconId: Union[str, None] itemId: Union[str, None] taskId: Union[str, None] @@ -524,11 +524,11 @@ class RoguelikeChoiceDisplayData(BaseStruct): class RoguelikeGameChoiceData(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') title: str description: Union[str, None] lockedCoverDesc: Union[str, None] - type_: str = field(name="type") + type_: str = field(name='type') leftDecoType: str nextSceneId: Union[str, None] icon: Union[str, None] @@ -537,7 +537,7 @@ class RoguelikeGameChoiceData(BaseStruct): class RoguelikeGameChoiceSceneData(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') title: str description: str background: Union[str, None] @@ -560,8 +560,8 @@ class RoguelikeGameNodeSubTypeData(BaseStruct): class RoguelikeGameVariationData(BaseStruct): - id_: str = field(name="id") - type_: str = field(name="type") + id_: str = field(name='id') + type_: str = field(name='type') outerName: str innerName: str functionDesc: str @@ -571,7 +571,7 @@ class RoguelikeGameVariationData(BaseStruct): class RoguelikeGameCharBuffData(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') iconId: str outerName: str innerName: str @@ -581,7 +581,7 @@ class RoguelikeGameCharBuffData(BaseStruct): class RoguelikeGameSquadBuffData(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') iconId: str outerName: str innerName: str @@ -663,7 +663,7 @@ class RoguelikeGameEndingDataLevelIcon(BaseStruct): class RoguelikeGameEndingData(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') familyId: int name: str desc: str @@ -685,13 +685,13 @@ class TipData(BaseStruct): class RoguelikeGameItemData(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') name: str description: Union[str, None] usage: str obtainApproach: str iconId: str - type_: str = field(name="type") + type_: str = field(name='type') subType: str rarity: str value: int @@ -961,7 +961,7 @@ class RoguelikeVisionData(BaseStruct): class RoguelikeVisionModuleDataVisionChoiceConfig(BaseStruct): value: int - type_: int = field(name="type") + type_: int = field(name='type') class RoguelikeVisionModuleConsts(BaseStruct): @@ -1227,7 +1227,7 @@ class RoguelikeTopicCustomizeData(BaseStruct): class RoguelikeTopicTable(BaseStruct): - __version__ = "23-04-23-15-07-53-24a81c" + __version__ = '23-04-23-15-07-53-24a81c' topics: Dict[str, RoguelikeTopicBasicData] constant: RoguelikeTopicConst diff --git a/ArknightsUID/utils/models/gamedata/SandboxTable.py b/ArknightsUID/utils/models/gamedata/SandboxTable.py index 02b62d2..9e7e9c7 100644 --- a/ArknightsUID/utils/models/gamedata/SandboxTable.py +++ b/ArknightsUID/utils/models/gamedata/SandboxTable.py @@ -240,7 +240,7 @@ class SandboxEventData(BaseStruct): class SandboxEventSceneData(BaseStruct): choiceSceneId: str - type_: str = field(name="type") + type_: str = field(name='type') title: str description: str choices: List[str] @@ -248,7 +248,7 @@ class SandboxEventSceneData(BaseStruct): class SandboxEventChoiceData(BaseStruct): choiceId: str - type_: str = field(name="type") + type_: str = field(name='type') costAction: int finishScene: bool title: str @@ -272,12 +272,12 @@ class SandboxMissionData(BaseStruct): class SandboxUnitData(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') name: str class SandboxDailyDescTemplateData(BaseStruct): - type_: str = field(name="type") + type_: str = field(name='type') templateDesc: List[str] @@ -296,7 +296,7 @@ class RushEnemyGroupConfig(BaseStruct): class RushEnemyGroupRushEnemyDBRef(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') level: int @@ -331,7 +331,7 @@ class RuneData(BaseStruct): class RuneTablePackedRuneData(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') points: Union[int, float] mutexGroupKey: Union[str, None] description: str @@ -398,7 +398,7 @@ class SandboxItemData(BaseStruct): class SandboxTable(BaseStruct): - __version__ = "23-10-31-11-47-45-d410ff" + __version__ = '23-10-31-11-47-45-d410ff' sandboxActTables: Dict[str, SandboxActTable] itemDatas: Dict[str, SandboxItemData] diff --git a/ArknightsUID/utils/models/gamedata/ShopClientTable.py b/ArknightsUID/utils/models/gamedata/ShopClientTable.py index 52e3fba..0076685 100644 --- a/ArknightsUID/utils/models/gamedata/ShopClientTable.py +++ b/ArknightsUID/utils/models/gamedata/ShopClientTable.py @@ -20,7 +20,7 @@ class ShopRecommendGroup(BaseStruct): class ShopKeeperWord(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') text: str @@ -91,7 +91,7 @@ class ShopCreditUnlockItem(BaseStruct): class ShopCreditUnlockGroup(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') index: str startDateTime: int charDict: List[ShopCreditUnlockItem] @@ -144,7 +144,7 @@ class LMTGSShopOverlaySchedule(BaseStruct): class ShopClientTable(BaseStruct): - __version__ = "23-10-31-11-47-45-d410ff" + __version__ = '23-10-31-11-47-45-d410ff' recommendList: List[ShopRecommendItem] creditUnlockGroup: Dict[str, ShopCreditUnlockGroup] diff --git a/ArknightsUID/utils/models/gamedata/SkillTable.py b/ArknightsUID/utils/models/gamedata/SkillTable.py index 86a23f2..f0b0be9 100644 --- a/ArknightsUID/utils/models/gamedata/SkillTable.py +++ b/ArknightsUID/utils/models/gamedata/SkillTable.py @@ -6,9 +6,9 @@ from msgspec import field class ItemBundle(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') count: int - type_: str = field(name="type") + type_: str = field(name='type') class SpData(BaseStruct): @@ -46,6 +46,6 @@ class SkillDataBundle(BaseStruct): class SkillTable(BaseStruct): - __version__ = "23-10-31-11-47-45-d410ff" + __version__ = '23-10-31-11-47-45-d410ff' skills: Dict[str, SkillDataBundle] diff --git a/ArknightsUID/utils/models/gamedata/SkinTable.py b/ArknightsUID/utils/models/gamedata/SkinTable.py index da2e122..3b1ce72 100644 --- a/ArknightsUID/utils/models/gamedata/SkinTable.py +++ b/ArknightsUID/utils/models/gamedata/SkinTable.py @@ -82,7 +82,7 @@ class SpecialSkinInfo(BaseStruct): class SkinTable(BaseStruct): - __version__ = "23-10-31-11-47-45-d410ff" + __version__ = '23-10-31-11-47-45-d410ff' charSkins: Dict[str, CharSkinData] buildinEvolveMap: Dict[str, Dict[str, str]] diff --git a/ArknightsUID/utils/models/gamedata/StageTable.py b/ArknightsUID/utils/models/gamedata/StageTable.py index da0d2ff..3d88ee8 100644 --- a/ArknightsUID/utils/models/gamedata/StageTable.py +++ b/ArknightsUID/utils/models/gamedata/StageTable.py @@ -11,15 +11,15 @@ class StageDataConditionDesc(BaseStruct): class StageDataDisplayRewards(BaseStruct): - type_: str = field(name="type") - id_: str = field(name="id") + type_: str = field(name='type') + id_: str = field(name='id') dropType: int class StageDataDisplayDetailRewards(BaseStruct): occPercent: int - type_: str = field(name="type") - id_: str = field(name="id") + type_: str = field(name='type') + id_: str = field(name='id') dropType: int @@ -44,9 +44,9 @@ class ProgressInfo(BaseStruct): class ItemBundle(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') count: int - type_: str = field(name="type") + type_: str = field(name='type') class ExtraInfo(BaseStruct): @@ -139,7 +139,7 @@ class TileAppendInfo(BaseStruct): class WeeklyForceOpenTable(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') startTime: int endTime: int forceOpenList: List[str] @@ -241,7 +241,7 @@ class ApProtectZoneInfo(BaseStruct): class StageTable(BaseStruct): - __version__ = "23-10-31-11-47-45-d410ff" + __version__ = '23-10-31-11-47-45-d410ff' stages: Dict[str, StageData] runeStageGroups: Dict[str, RuneStageGroupData] diff --git a/ArknightsUID/utils/models/gamedata/StoryReviewMetaTable.py b/ArknightsUID/utils/models/gamedata/StoryReviewMetaTable.py index 93cd866..395abac 100644 --- a/ArknightsUID/utils/models/gamedata/StoryReviewMetaTable.py +++ b/ArknightsUID/utils/models/gamedata/StoryReviewMetaTable.py @@ -11,9 +11,9 @@ class MiniActTrialDataRuleData(BaseStruct): class ItemBundle(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') count: int - type_: str = field(name="type") + type_: str = field(name='type') class MiniActTrialDataMiniActTrialRewardData(BaseStruct): @@ -38,23 +38,23 @@ class MiniActTrialData(BaseStruct): class ActArchiveResDataPicArchiveResItemData(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') desc: str assetPath: str - type_: str = field(name="type") + type_: str = field(name='type') subType: Union[str, None] picDescription: str kvId: Union[str, None] class ActArchiveResDataAudioArchiveResItemData(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') desc: str name: str class ActArchiveResDataAvgArchiveResItemData(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') desc: str breifPath: Union[str, None] contentPath: str @@ -64,7 +64,7 @@ class ActArchiveResDataAvgArchiveResItemData(BaseStruct): class ActArchiveResDataStoryArchiveResItemData(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') desc: str date: Union[str, None] pic: str @@ -86,7 +86,7 @@ class ActArchiveResDataActivityNewsLine(BaseStruct): class ActArchiveResDataNewsArchiveResItemData(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') desc: str newsType: str newsFormat: ActArchiveResDataNewsFormatData @@ -229,7 +229,7 @@ class ActArchiveComponentTable(BaseStruct): class StoryReviewMetaTable(BaseStruct): - __version__ = "23-10-31-11-47-45-d410ff" + __version__ = '23-10-31-11-47-45-d410ff' miniActTrialData: MiniActTrialData actArchiveResData: ActArchiveResData diff --git a/ArknightsUID/utils/models/gamedata/StoryReviewTable.py b/ArknightsUID/utils/models/gamedata/StoryReviewTable.py index 6e1d431..bf81c40 100644 --- a/ArknightsUID/utils/models/gamedata/StoryReviewTable.py +++ b/ArknightsUID/utils/models/gamedata/StoryReviewTable.py @@ -6,9 +6,9 @@ from msgspec import field class ItemBundle(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') count: int - type_: str = field(name="type") + type_: str = field(name='type') class StoryDataConditionStageCondition(BaseStruct): @@ -40,7 +40,7 @@ class StoryReviewInfoClientData(BaseStruct): class StoryReviewGroupClientData(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') name: str entryType: str actType: str @@ -60,6 +60,6 @@ class StoryReviewGroupClientData(BaseStruct): class StoryReviewTable(BaseStruct): - __version__ = "23-10-31-11-47-45-d410ff" + __version__ = '23-10-31-11-47-45-d410ff' storyreviewtable: Dict[str, StoryReviewGroupClientData] diff --git a/ArknightsUID/utils/models/gamedata/StoryTable.py b/ArknightsUID/utils/models/gamedata/StoryTable.py index 756bfa9..8a223db 100644 --- a/ArknightsUID/utils/models/gamedata/StoryTable.py +++ b/ArknightsUID/utils/models/gamedata/StoryTable.py @@ -6,7 +6,7 @@ from msgspec import field class StoryDataTrigger(BaseStruct): - type_: str = field(name="type") + type_: str = field(name='type') key: Union[str, None] useRegex: bool @@ -27,13 +27,13 @@ class StoryDataCondition(BaseStruct): class ItemBundle(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') count: int - type_: str = field(name="type") + type_: str = field(name='type') class StoryData(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') needCommit: bool repeatable: bool disabled: bool @@ -46,6 +46,6 @@ class StoryData(BaseStruct): class StoryTable(BaseStruct): - __version__ = "23-10-31-11-47-45-d410ff" + __version__ = '23-10-31-11-47-45-d410ff' stories: Dict[str, StoryData] diff --git a/ArknightsUID/utils/models/gamedata/TechBuffTable.py b/ArknightsUID/utils/models/gamedata/TechBuffTable.py index ba1c07c..e330622 100644 --- a/ArknightsUID/utils/models/gamedata/TechBuffTable.py +++ b/ArknightsUID/utils/models/gamedata/TechBuffTable.py @@ -27,7 +27,7 @@ class RuneData(BaseStruct): class PackedRuneData(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') points: float mutexGroupKey: Union[str, None] description: str @@ -35,6 +35,6 @@ class PackedRuneData(BaseStruct): class TechBuffTable(BaseStruct): - __version__ = "23-10-31-11-47-45-d410ff" + __version__ = '23-10-31-11-47-45-d410ff' runes: List[PackedRuneData] diff --git a/ArknightsUID/utils/models/gamedata/TipTable.py b/ArknightsUID/utils/models/gamedata/TipTable.py index ecd57e3..168d025 100644 --- a/ArknightsUID/utils/models/gamedata/TipTable.py +++ b/ArknightsUID/utils/models/gamedata/TipTable.py @@ -17,7 +17,7 @@ class WorldViewTip(BaseStruct): class TipTable(BaseStruct): - __version__ = "23-10-31-11-47-45-d410ff" + __version__ = '23-10-31-11-47-45-d410ff' tips: List[TipData] worldViewTips: List[WorldViewTip] diff --git a/ArknightsUID/utils/models/gamedata/TokenTable.py b/ArknightsUID/utils/models/gamedata/TokenTable.py index 3934afd..ab15426 100644 --- a/ArknightsUID/utils/models/gamedata/TokenTable.py +++ b/ArknightsUID/utils/models/gamedata/TokenTable.py @@ -32,7 +32,7 @@ class CharacterDataTraitDataBundle(BaseStruct): class AttributesData(BaseStruct): maxHp: int atk: int - def_: int = field(name="def") + def_: int = field(name='def') magicResistance: float cost: int blockCnt: int @@ -60,9 +60,9 @@ class CharacterDataAttributesKeyFrame(BaseStruct): class ItemBundle(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') count: int - type_: str = field(name="type") + type_: str = field(name='type') class CharacterDataPhaseData(BaseStruct): @@ -123,7 +123,7 @@ class ExternalBuff(BaseStruct): class CharacterDataPotentialRank(BaseStruct): - type_: int = field(name="type") + type_: int = field(name='type') description: str buff: Union[ExternalBuff, None] equivalentCost: Union[ItemBundle, None] @@ -170,6 +170,6 @@ class TokenCharacterData(BaseStruct): class TokenTable(BaseStruct): - __version__ = "23-10-31-11-47-45-d410ff" + __version__ = '23-10-31-11-47-45-d410ff' tokens: Dict[str, TokenCharacterData] diff --git a/ArknightsUID/utils/models/gamedata/UniequipData.py b/ArknightsUID/utils/models/gamedata/UniequipData.py index 7005384..8a46a80 100644 --- a/ArknightsUID/utils/models/gamedata/UniequipData.py +++ b/ArknightsUID/utils/models/gamedata/UniequipData.py @@ -6,9 +6,9 @@ from msgspec import field class ItemBundle(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') count: int - type_: str = field(name="type") + type_: str = field(name='type') class UnlockCondition(BaseStruct): @@ -39,7 +39,7 @@ class UniEquipData(BaseStruct): unlockFavorPercent: int missionList: List[str] itemCost: Union[List[ItemBundle], None] - type_: str = field(name="type") + type_: str = field(name='type') traitDescBundle: List[TraitDescBundle] @@ -59,7 +59,7 @@ class SubProfessionData(BaseStruct): class UniequipData(BaseStruct): - __version__ = "23-10-31-11-47-45-d410ff" + __version__ = '23-10-31-11-47-45-d410ff' equipDict: Dict[str, UniEquipData] missionList: Dict[str, UniEquipMissionData] diff --git a/ArknightsUID/utils/models/gamedata/UniequipTable.py b/ArknightsUID/utils/models/gamedata/UniequipTable.py index 9aabf84..24ffa6b 100644 --- a/ArknightsUID/utils/models/gamedata/UniequipTable.py +++ b/ArknightsUID/utils/models/gamedata/UniequipTable.py @@ -6,9 +6,9 @@ from msgspec import field class ItemBundle(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') count: int - type_: str = field(name="type") + type_: str = field(name='type') class UniEquipData(BaseStruct): @@ -29,7 +29,7 @@ class UniEquipData(BaseStruct): unlockFavorPoint: int missionList: List[str] itemCost: Union[Dict[str, List[ItemBundle]], None] - type_: str = field(name="type") + type_: str = field(name='type') uniEquipGetTime: int charEquipOrder: int @@ -61,7 +61,7 @@ class UniEquipTimeInfo(BaseStruct): class UniEquipTable(BaseStruct): - __version__ = "23-10-31-11-47-45-d410ff" + __version__ = '23-10-31-11-47-45-d410ff' equipDict: Dict[str, UniEquipData] missionList: Dict[str, UniEquipMissionData] diff --git a/ArknightsUID/utils/models/gamedata/ZoneTable.py b/ArknightsUID/utils/models/gamedata/ZoneTable.py index 218169f..1db5732 100644 --- a/ArknightsUID/utils/models/gamedata/ZoneTable.py +++ b/ArknightsUID/utils/models/gamedata/ZoneTable.py @@ -8,7 +8,7 @@ from msgspec import field class ZoneData(BaseStruct): zoneID: str zoneIndex: int - type_: str = field(name="type") + type_: str = field(name='type') zoneNameFirst: Union[str, None] zoneNameSecond: Union[str, None] zoneNameTitleCurrent: Union[str, None] @@ -21,7 +21,7 @@ class ZoneData(BaseStruct): class WeeklyZoneData(BaseStruct): daysOfWeek: List[int] - type_: str = field(name="type") + type_: str = field(name='type') class ZoneValidInfo(BaseStruct): @@ -47,9 +47,9 @@ class MainlineZoneData(BaseStruct): class ItemBundle(BaseStruct): - id_: str = field(name="id") + id_: str = field(name='id') count: int - type_: str = field(name="type") + type_: str = field(name='type') class RecordRewardInfo(BaseStruct): @@ -101,7 +101,7 @@ class ZoneMetaData(BaseStruct): class ZoneTable(BaseStruct): - __version__ = "23-10-31-11-47-45-d410ff" + __version__ = '23-10-31-11-47-45-d410ff' zones: Dict[str, ZoneData] weeklyAdditionInfo: Dict[str, WeeklyZoneData] diff --git a/ArknightsUID/utils/models/gamedata/common.py b/ArknightsUID/utils/models/gamedata/common.py index e71aa6b..b8a4131 100644 --- a/ArknightsUID/utils/models/gamedata/common.py +++ b/ArknightsUID/utils/models/gamedata/common.py @@ -2,23 +2,25 @@ from __future__ import annotations from collections.abc import Callable, Iterable, Iterator from copy import copy, deepcopy -from typing import Any, Dict, Tuple, TypeVar, Union -from typing_extensions import dataclass_transform +from typing import Any, TypeVar from msgspec import ( Struct, UnsetType, convert, field, +) +from msgspec import ( json as mscjson, ) +from typing_extensions import dataclass_transform -Model = TypeVar("Model", bound="BaseStruct") -T1 = TypeVar("T1") -T2 = TypeVar("T2") +Model = TypeVar('Model', bound='BaseStruct') +T1 = TypeVar('T1') +T2 = TypeVar('T2') -def transUnset(v: Union[T1, UnsetType], d: T2 = None) -> Union[T1, T2]: +def transUnset(v: T1 | UnsetType, d: T2 = None) -> T1 | T2: return v if not isinstance(v, UnsetType) else d @@ -39,8 +41,8 @@ class BaseStruct( *, strict: bool = True, from_attributes: bool = False, - dec_hook: Union[Callable[[type, Any], Any], None] = None, - builtin_types: Union[Iterable[type], None] = None, + dec_hook: Callable[[type, Any], Any] | None = None, + builtin_types: Iterable[type] | None = None, str_keys: bool = False, ) -> Model: if obj is None: @@ -57,7 +59,7 @@ class BaseStruct( str_keys=str_keys, ) - def __iter__(self) -> Iterator[Tuple[str, Any]]: + def __iter__(self) -> Iterator[tuple[str, Any]]: for field_name in self.__struct_fields__: yield field_name, getattr(self, field_name) @@ -68,7 +70,7 @@ class BaseStruct( for field_name in self.__struct_fields__: yield getattr(self, field_name) - def model_dump(self) -> Dict[str, Any]: + def model_dump(self) -> dict[str, Any]: return mscjson.decode(mscjson.encode(self)) def dump_child(self, target: str) -> Any: diff --git a/ArknightsUID/utils/models/skland/models.py b/ArknightsUID/utils/models/skland/models.py index 0604269..16309fc 100644 --- a/ArknightsUID/utils/models/skland/models.py +++ b/ArknightsUID/utils/models/skland/models.py @@ -42,19 +42,22 @@ class ArknightsAttendanceAward(Struct): count: int type_: str = field(name='type') + class ArknightsAttendanceModel(Struct): ts: str awards: List[ArknightsAttendanceAward] + + ################ # ArknightsAttendance End ################ - ################ # ArknightsUserMeModel Start ################ + class UserMeInfoApply(Struct): nickname: str profile: str @@ -137,16 +140,17 @@ class ArknightsUserMeModel(Struct, omit_defaults=True): moderator: UserMeModerator userInfoApply: UserMeInfoApply + ################ # ArknightsUserMeModel End ################ - ################ # ArknightsPlayerInfoModel Start ################ + class PlayerManufactureFormulaInfo(Struct): id_: str = field(name='id') itemId: str @@ -539,8 +543,8 @@ class PlayerInfoChar(Struct): evolvePhase: int potentialRank: int mainSkillLvl: int - skills: Union[List[PlayerInfoCharSkill] , None] - equip: Union[List[PlayerInfoCharEquip] , None] + skills: Union[List[PlayerInfoCharSkill], None] + equip: Union[List[PlayerInfoCharEquip], None] favorPercent: int defaultSkillId: str gainTime: int diff --git a/ArknightsUID/utils/resource/RESOURCE_PATH.py b/ArknightsUID/utils/resource/RESOURCE_PATH.py index ab99a8d..dfe6327 100644 --- a/ArknightsUID/utils/resource/RESOURCE_PATH.py +++ b/ArknightsUID/utils/resource/RESOURCE_PATH.py @@ -12,6 +12,7 @@ RESOURCE_PATH = MAIN_PATH / 'resource' GAMEDATA_PATH = RESOURCE_PATH / 'gamedata' SKIN_PATH = RESOURCE_PATH / 'skin' + def init_dir(): for i in [ MAIN_PATH, @@ -19,7 +20,7 @@ def init_dir(): PLAYER_PATH, RESOURCE_PATH, GAMEDATA_PATH, - SKIN_PATH + SKIN_PATH, ]: i.mkdir(parents=True, exist_ok=True) diff --git a/ArknightsUID/version.py b/ArknightsUID/version.py index ca67c05..0659ef3 100644 --- a/ArknightsUID/version.py +++ b/ArknightsUID/version.py @@ -1,3 +1,3 @@ -ArknightsUID_version = "0.1.0" -Arknights_Client_version = "2.1.21" -Arknights_Res_version = "23-10-31-11-47-45-d410ff" +ArknightsUID_version = '0.1.0' +Arknights_Client_version = '2.1.21' +Arknights_Res_version = '23-10-31-11-47-45-d410ff' diff --git a/README.md b/README.md index d1025e3..da5c173 100644 --- a/README.md +++ b/README.md @@ -4,14 +4,13 @@ ArknightsUID

ArknightsUID 0.1

-

🚧支持OneBot(QQ)、QQ频道、微信、开黑啦、Telegram的全功能星铁Bot插件🚧

+

🚧支持OneBot(QQ)、QQ频道、微信、开黑啦、Telegram的全功能明日方舟Bot插件🚧

安装文档   ·   指令列表   ·   常见问题
- ## 丨安装提醒 > **注意:该插件为[早柚核心(gsuid_core)](https://github.com/Genshin-bots/gsuid_core)的扩展,具体安装方式可参考[GenshinUID](https://github.com/KimigaiiWuyi/GenshinUID)** @@ -27,7 +26,7 @@ ## 丨功能
ark每日 - 命令: arkmr

- +

以及签到 & 体力推送等.. diff --git a/pyproject.toml b/pyproject.toml index 46b1dff..ef47c21 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -57,7 +57,9 @@ pythonPlatform = "All" [tool.ruff] select = ["E", "W", "F", "UP", "C", "T", "PYI", "PT", "Q"] -ignore = ["C901", "Q000"] - +ignore = ["C901", "Q000", "Q003"] line-length = 108 target-version = "py38" + +[tool.ruff.format] +quote-style = "single"