mirror of
https://github.com/baiqwerdvd/ArknightsUID.git
synced 2025-05-04 19:17:33 +08:00
支持新版gamedata
This commit is contained in:
parent
0059e0dbe7
commit
f6d610d33b
@ -54,7 +54,9 @@ async def get_ap_img(bot_id: str, user_id: str):
|
||||
# 开始绘图任务
|
||||
task = []
|
||||
img = Image.new(
|
||||
"RGBA", (based_w * len(useable_uid_list), based_h), (0, 0, 0, 0)
|
||||
"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))
|
||||
@ -97,9 +99,7 @@ def get_error(img: Image.Image, uid: str, daily_data: int):
|
||||
async def draw_ap_img(uid: str) -> Image.Image:
|
||||
# char
|
||||
char_pic = (
|
||||
Image.open(TEXT_PATH / "char_1028_texas2_1b.png")
|
||||
.resize((1700, 1700))
|
||||
.convert("RGBA")
|
||||
Image.open(TEXT_PATH / "char_1028_texas2_1b.png").resize((1700, 1700)).convert("RGBA")
|
||||
)
|
||||
|
||||
tmp_img = Image.new("RGBA", (based_w, based_h))
|
||||
|
@ -7,9 +7,7 @@ from gsuid_core.utils.plugins_config.models import (
|
||||
)
|
||||
|
||||
CONIFG_DEFAULT: Dict[str, GSC] = {
|
||||
"SignTime": GsListStrConfig(
|
||||
"每晚签到时间设置", "每晚森空岛签到时间设置(时,分)", ["0", "38"]
|
||||
),
|
||||
"SignTime": GsListStrConfig("每晚签到时间设置", "每晚森空岛签到时间设置(时,分)", ["0", "38"]),
|
||||
"SignReportSimple": GsBoolConfig(
|
||||
"简洁签到报告",
|
||||
"开启后可以大大减少每日签到报告字数",
|
||||
|
@ -43,8 +43,7 @@ async def get_core_help() -> Union[bytes, str]:
|
||||
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}"
|
||||
f"Client Version:{Arknights_Client_version} " f" Res version: {Arknights_Res_version}"
|
||||
],
|
||||
)
|
||||
return img
|
||||
|
@ -25,8 +25,7 @@ async def get_resp_msg(bot: Bot, ev: Event):
|
||||
if not phone_number.isdigit():
|
||||
return await bot.send("你输入了错误的格式!")
|
||||
resp = await bot.receive_resp(
|
||||
f"请确认你的手机号码: {phone_number}."
|
||||
"如果正确请回复'确认', 其他任何回复将取消本次操作."
|
||||
f"请确认你的手机号码: {phone_number}." "如果正确请回复'确认', 其他任何回复将取消本次操作."
|
||||
)
|
||||
if resp is not None and resp.text == "确认":
|
||||
login = SklandLogin(phone_number)
|
||||
|
@ -26,7 +26,6 @@ from ..utils.models.gamedata.GamedataConst import GamedataConst
|
||||
from ..utils.models.gamedata.HandbookInfoTable import HandbookInfoTable
|
||||
from ..utils.models.gamedata.HandbookTable import HandbookTable
|
||||
from ..utils.models.gamedata.HandbookTeamTable import HandbookTeamTable
|
||||
from ..utils.models.gamedata.ItemTable import ItemTable
|
||||
from ..utils.models.gamedata.MedalTable import MedalTable
|
||||
from ..utils.models.gamedata.MissionTable import MissionTable
|
||||
from ..utils.models.gamedata.OpenServerTable import OpenServerTable
|
||||
@ -37,7 +36,6 @@ from ..utils.models.gamedata.RetroTable import RetroTable
|
||||
from ..utils.models.gamedata.RoguelikeTable import RoguelikeTable
|
||||
from ..utils.models.gamedata.RoguelikeTopicTable import RoguelikeTopicTable
|
||||
from ..utils.models.gamedata.SandboxTable import SandboxTable
|
||||
from ..utils.models.gamedata.SandboxPermTable import SandboxPermTable
|
||||
from ..utils.models.gamedata.ShopClientTable import ShopClientTable
|
||||
from ..utils.models.gamedata.SkillTable import SkillTable
|
||||
from ..utils.models.gamedata.SkinTable import SkinTable
|
||||
@ -66,9 +64,8 @@ def read_json(file_path: Path, **kwargs) -> dict:
|
||||
logger.error(f"Error reading JSON file: {e}")
|
||||
return {}
|
||||
|
||||
threading.Thread(
|
||||
target=lambda: asyncio.run(download_all_resource()), daemon=True
|
||||
).start()
|
||||
|
||||
threading.Thread(target=lambda: asyncio.run(download_all_resource()), daemon=True).start()
|
||||
# ACTIVITY_TABLE = ActivityTable.convert(read_json(GAMEDATA_PATH / 'activity_table.json'))
|
||||
# AUDIO_DATA = AudioData.convert(read_json(GAMEDATA_PATH / 'audio_data.json'))
|
||||
|
||||
@ -84,23 +81,15 @@ CHAPTER_TABLE = ChapterTable.convert(
|
||||
CHARACTER_TABLE = CharacterTable.convert(
|
||||
{"chars": read_json(GAMEDATA_PATH / "character_table.json")}
|
||||
)
|
||||
CHAR_META_TABLE = CharMetaTable.convert(
|
||||
read_json(GAMEDATA_PATH / "char_meta_table.json")
|
||||
)
|
||||
CHAR_META_TABLE = CharMetaTable.convert(read_json(GAMEDATA_PATH / "char_meta_table.json"))
|
||||
CHARM_TABLE = CharmTable.convert(read_json(GAMEDATA_PATH / "charm_table.json"))
|
||||
CHAR_PATH_TABLE = CharPatchTable.convert(
|
||||
read_json(GAMEDATA_PATH / "char_patch_table.json")
|
||||
)
|
||||
CHAR_PATH_TABLE = CharPatchTable.convert(read_json(GAMEDATA_PATH / "char_patch_table.json"))
|
||||
CHARWORD_TABLE = CharwordTable.convert(read_json(GAMEDATA_PATH / "charword_table.json"))
|
||||
CHECKIN_TABLE = CheckinTable.convert(read_json(GAMEDATA_PATH / "checkin_table.json"))
|
||||
CLIMB_TOWER_TABLE = ClimbTowerTable.convert(
|
||||
read_json(GAMEDATA_PATH / "climb_tower_table.json")
|
||||
)
|
||||
CLIMB_TOWER_TABLE = ClimbTowerTable.convert(read_json(GAMEDATA_PATH / "climb_tower_table.json"))
|
||||
CLUE_DATA = ClueData.convert(read_json(GAMEDATA_PATH / "clue_data.json"))
|
||||
CRISIS_TABLE = CrisisTable.convert(read_json(GAMEDATA_PATH / "crisis_table.json"))
|
||||
CRISIS_V2_TABLE = CrisisV2Table.convert(
|
||||
read_json(GAMEDATA_PATH / "crisis_v2_table.json")
|
||||
)
|
||||
CRISIS_V2_TABLE = CrisisV2Table.convert(read_json(GAMEDATA_PATH / "crisis_v2_table.json"))
|
||||
|
||||
# DISPLAY_META_TABLE = DisplayMetaTable.convert(read_json(GAMEDATA_PATH / 'display_meta_table.json'))
|
||||
|
||||
@ -126,38 +115,28 @@ HANDBOOK_TEAM_TABLE = HandbookTeamTable.convert(
|
||||
MEDAL_TABLE = MedalTable.convert(read_json(GAMEDATA_PATH / "medal_table.json"))
|
||||
MISSION_TABLE = MissionTable.convert(read_json(GAMEDATA_PATH / "mission_table.json"))
|
||||
|
||||
OPEN_SERVER_TABLE = OpenServerTable.convert(
|
||||
read_json(GAMEDATA_PATH / "open_server_table.json")
|
||||
)
|
||||
OPEN_SERVER_TABLE = OpenServerTable.convert(read_json(GAMEDATA_PATH / "open_server_table.json"))
|
||||
|
||||
PLAYER_AVATAR_TABLE = PlayerAvatarTable.convert(
|
||||
read_json(GAMEDATA_PATH / "player_avatar_table.json")
|
||||
)
|
||||
|
||||
RANGE_TABLE = RangeTable.convert(
|
||||
{"range_": read_json(GAMEDATA_PATH / "range_table.json")}
|
||||
)
|
||||
RANGE_TABLE = RangeTable.convert({"range_": read_json(GAMEDATA_PATH / "range_table.json")})
|
||||
REPLICATE_TABLE = ReplicateTable.convert(
|
||||
{"replicate": read_json(GAMEDATA_PATH / "replicate_table.json")}
|
||||
)
|
||||
RETRO_TABLE = RetroTable.convert(read_json(GAMEDATA_PATH / "retro_table.json"))
|
||||
ROGUELIKE_TABLE = RoguelikeTable.convert(
|
||||
read_json(GAMEDATA_PATH / "roguelike_table.json")
|
||||
)
|
||||
ROGUELIKE_TABLE = RoguelikeTable.convert(read_json(GAMEDATA_PATH / "roguelike_table.json"))
|
||||
ROGUELIKE_TOPIC_TABLE = RoguelikeTopicTable.convert(
|
||||
read_json(GAMEDATA_PATH / "roguelike_topic_table.json")
|
||||
)
|
||||
|
||||
SANDBOX_TABLE = SandboxTable.convert(read_json(GAMEDATA_PATH / "sandbox_table.json"))
|
||||
SANDBOX_PERM_TABLE = SandboxPermTable.convert(
|
||||
read_json(GAMEDATA_PATH / "sandbox_perm_table.json")
|
||||
)
|
||||
SHOP_CLIENT_TABLE = ShopClientTable.convert(
|
||||
read_json(GAMEDATA_PATH / "shop_client_table.json")
|
||||
)
|
||||
SKILL_TABLE = SkillTable.convert(
|
||||
{"skills": read_json(GAMEDATA_PATH / "skill_table.json")}
|
||||
)
|
||||
# SANDBOX_PERM_TABLE = SandboxPermTable.convert(
|
||||
# read_json(GAMEDATA_PATH / "sandbox_perm_table.json")
|
||||
# )
|
||||
SHOP_CLIENT_TABLE = ShopClientTable.convert(read_json(GAMEDATA_PATH / "shop_client_table.json"))
|
||||
SKILL_TABLE = SkillTable.convert({"skills": read_json(GAMEDATA_PATH / "skill_table.json")})
|
||||
SKIN_TABLE = SkinTable.convert(read_json(GAMEDATA_PATH / "skin_table.json"))
|
||||
STAGE_TABLE = StageTable.convert(read_json(GAMEDATA_PATH / "stage_table.json"))
|
||||
STORY_REVIEW_META_TABLE = StoryReviewMetaTable.convert(
|
||||
@ -166,17 +145,11 @@ STORY_REVIEW_META_TABLE = StoryReviewMetaTable.convert(
|
||||
STORY_REVIEW_TABLE = StoryReviewTable.convert(
|
||||
{"storyreviewtable": read_json(GAMEDATA_PATH / "story_review_table.json")}
|
||||
)
|
||||
STORY_TABLE = StoryTable.convert(
|
||||
{"stories": read_json(GAMEDATA_PATH / "story_table.json")}
|
||||
)
|
||||
STORY_TABLE = StoryTable.convert({"stories": read_json(GAMEDATA_PATH / "story_table.json")})
|
||||
|
||||
TECH_BUFF_TABLE = TechBuffTable.convert(
|
||||
read_json(GAMEDATA_PATH / "tech_buff_table.json")
|
||||
)
|
||||
TECH_BUFF_TABLE = TechBuffTable.convert(read_json(GAMEDATA_PATH / "tech_buff_table.json"))
|
||||
TIP_TABLE = TipTable.convert(read_json(GAMEDATA_PATH / "tip_table.json"))
|
||||
TOKEN_TABLE = TokenTable.convert(
|
||||
{"tokens": read_json(GAMEDATA_PATH / "token_table.json")}
|
||||
)
|
||||
TOKEN_TABLE = TokenTable.convert({"tokens": read_json(GAMEDATA_PATH / "token_table.json")})
|
||||
|
||||
UNIEQUIP_DATA = UniequipData.convert(read_json(GAMEDATA_PATH / "uniequip_data.json"))
|
||||
UNIEQUIP_TABLE = UniEquipTable.convert(read_json(GAMEDATA_PATH / "uniequip_table.json"))
|
||||
|
@ -34,9 +34,7 @@ async def get_role_img(uid: str):
|
||||
secretary_skinId = secretary.skinId.replace("@", "_")
|
||||
|
||||
secretary_char_img = (
|
||||
Image.open(SKINPACK_PATH / f"{secretary_skinId}b.png")
|
||||
.resize((768, 768))
|
||||
.convert("RGBA")
|
||||
Image.open(SKINPACK_PATH / f"{secretary_skinId}b.png").resize((768, 768)).convert("RGBA")
|
||||
)
|
||||
char_info.paste(secretary_char_img, (0, -20), secretary_char_img)
|
||||
|
||||
|
@ -73,9 +73,7 @@ async def sign_in(ark_uid: str) -> str:
|
||||
count += 1
|
||||
sign_missed = day_of_month - count + special_count
|
||||
im = f"ark签到成功!\n{get_im}\n本月漏签次数:{sign_missed}"
|
||||
logger.info(
|
||||
f"[ARK签到] {ark_uid} 签到完成, 结果: ark签到成功, 漏签次数: {sign_missed}"
|
||||
)
|
||||
logger.info(f"[ARK签到] {ark_uid} 签到完成, 结果: ark签到成功, 漏签次数: {sign_missed}")
|
||||
return im
|
||||
|
||||
|
||||
@ -134,9 +132,7 @@ async def daily_sign():
|
||||
delay = 1
|
||||
else:
|
||||
delay = 50 + random.randint(3, 45)
|
||||
logger.info(
|
||||
f"[ARK签到] 已签到{len(tasks)}个用户, 等待{delay}秒进行下一次签到"
|
||||
)
|
||||
logger.info(f"[ARK签到] 已签到{len(tasks)}个用户, 等待{delay}秒进行下一次签到")
|
||||
tasks.clear()
|
||||
already = 0
|
||||
await asyncio.sleep(delay)
|
||||
|
@ -3,7 +3,9 @@ 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"
|
||||
|
||||
|
||||
|
@ -26,7 +26,13 @@ async def text2pic(text: str, max_size: int = 800, font_size: int = 20):
|
||||
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
|
||||
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)
|
||||
|
@ -172,15 +172,11 @@ async def get_equip_info(char_id: str):
|
||||
for blackboard_ in blackboard:
|
||||
blackboard_dict[blackboard_.key] = blackboard_.value
|
||||
if additionalDescription:
|
||||
additionalDescription = re.sub(
|
||||
r"<[^>]+>", "", additionalDescription
|
||||
)
|
||||
additionalDescription = re.sub(r"<[^>]+>", "", additionalDescription)
|
||||
additionalDescription = render_template(
|
||||
additionalDescription, blackboard_dict
|
||||
)
|
||||
additionalDescription = re.sub(
|
||||
r".000000", "", additionalDescription
|
||||
)
|
||||
additionalDescription = re.sub(r".000000", "", additionalDescription)
|
||||
im += f"{additionalDescription}\n"
|
||||
|
||||
elif target == "TALENT_DATA_ONLY":
|
||||
@ -192,9 +188,7 @@ async def get_equip_info(char_id: str):
|
||||
upgradeDescription = candidate.upgradeDescription
|
||||
blackboard = candidate.blackboard
|
||||
if upgradeDescription and blackboard:
|
||||
upgradeDescription = re.sub(
|
||||
r"<[^>]+>", "", upgradeDescription
|
||||
)
|
||||
upgradeDescription = re.sub(r"<[^>]+>", "", upgradeDescription)
|
||||
im += f"{upgradeDescription}\n"
|
||||
|
||||
elif target == "DISPLAY":
|
||||
@ -207,15 +201,11 @@ async def get_equip_info(char_id: str):
|
||||
for blackboard_ in blackboard:
|
||||
blackboard_dict[blackboard_.key] = blackboard_.value
|
||||
if additionalDescription and blackboard:
|
||||
additionalDescription = re.sub(
|
||||
r"<[^>]+>", "", additionalDescription
|
||||
)
|
||||
additionalDescription = re.sub(r"<[^>]+>", "", additionalDescription)
|
||||
additionalDescription = render_template(
|
||||
additionalDescription, blackboard_dict
|
||||
)
|
||||
additionalDescription = re.sub(
|
||||
r".000000", "", additionalDescription
|
||||
)
|
||||
additionalDescription = re.sub(r".000000", "", additionalDescription)
|
||||
im += f"{additionalDescription}\n"
|
||||
|
||||
elif target == "TALENT":
|
||||
@ -226,9 +216,7 @@ async def get_equip_info(char_id: str):
|
||||
if upgradeDescription == "":
|
||||
continue
|
||||
else:
|
||||
upgradeDescription = re.sub(
|
||||
r"<[^>]+>", "", upgradeDescription
|
||||
)
|
||||
upgradeDescription = re.sub(r"<[^>]+>", "", upgradeDescription)
|
||||
im += f"{upgradeDescription}\n"
|
||||
|
||||
elif target == "TRAIT_DATA_ONLY":
|
||||
@ -241,9 +229,7 @@ async def get_equip_info(char_id: str):
|
||||
for blackboard_ in blackboard:
|
||||
blackboard_dict[blackboard_.key] = blackboard_.value
|
||||
if overrideDescripton and blackboard:
|
||||
overrideDescripton = re.sub(
|
||||
r"<[^>]+>", "", overrideDescripton
|
||||
)
|
||||
overrideDescripton = re.sub(r"<[^>]+>", "", overrideDescripton)
|
||||
overrideDescripton = render_template(
|
||||
overrideDescripton, blackboard_dict
|
||||
)
|
||||
@ -302,9 +288,7 @@ async def get_wiki_info(char_id: str):
|
||||
char_talent_name = talent_candidates[-1].name
|
||||
char_talent_description = talent_candidates[-1].description
|
||||
if char_talent_description:
|
||||
char_talent_description = re.sub(
|
||||
r"<[^>]+>", "", char_talent_description
|
||||
)
|
||||
char_talent_description = re.sub(r"<[^>]+>", "", char_talent_description)
|
||||
im += f"{char_talent_name}: {char_talent_description}\n"
|
||||
|
||||
char_potential_data = character_data.potentialRanks
|
||||
@ -384,9 +368,9 @@ 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)
|
||||
skill_description = render_template(
|
||||
skill_description, black_board_dict
|
||||
).replace("--", "-")
|
||||
skill_description = render_template(skill_description, black_board_dict).replace(
|
||||
"--", "-"
|
||||
)
|
||||
last_skill_description = re.sub(r".000000", "", skill_description)
|
||||
if "{" in last_skill_description:
|
||||
raise NotImplementedError
|
||||
@ -668,9 +652,9 @@ async def draw_wiki(char_id: str):
|
||||
black_board_dict[black_board.key] = black_board.value
|
||||
if skill_description:
|
||||
skill_description = re.sub(r"<[^>]+>", "", skill_description)
|
||||
skill_description = render_template(
|
||||
skill_description, black_board_dict
|
||||
).replace("--", "-")
|
||||
skill_description = render_template(skill_description, black_board_dict).replace(
|
||||
"--", "-"
|
||||
)
|
||||
last_skill_description = re.sub(r".000000", "", skill_description)
|
||||
if "{" in last_skill_description:
|
||||
raise NotImplementedError
|
||||
|
@ -52,7 +52,9 @@ class BaseArkApi:
|
||||
proxy_url: Union[str, None] = proxy_url if proxy_url else None
|
||||
|
||||
async def _pass(
|
||||
self, gt: str, ch: str
|
||||
self,
|
||||
gt: str,
|
||||
ch: str,
|
||||
) -> Tuple[Union[str, None], Union[str, None]]:
|
||||
_pass_api = core_plugins_config.get_config("_pass_API").data
|
||||
if _pass_api:
|
||||
@ -71,10 +73,12 @@ class BaseArkApi:
|
||||
return validate, ch
|
||||
|
||||
async def get_game_player_info(
|
||||
self, uid: str
|
||||
self,
|
||||
uid: str,
|
||||
) -> Union[int, ArknightsPlayerInfoModel]:
|
||||
cred: Union[str, None] = await ArknightsUser.get_user_attr_by_uid(
|
||||
uid=uid, attr="cred"
|
||||
uid=uid,
|
||||
attr="cred",
|
||||
)
|
||||
if cred is None:
|
||||
return -60
|
||||
@ -102,7 +106,8 @@ class BaseArkApi:
|
||||
|
||||
async def skd_sign(self, uid: str) -> Union[int, ArknightsAttendanceModel]:
|
||||
cred: Union[str, None] = await ArknightsUser.get_user_attr_by_uid(
|
||||
uid=uid, attr="cred"
|
||||
uid=uid,
|
||||
attr="cred",
|
||||
)
|
||||
if cred is None:
|
||||
return -60
|
||||
@ -137,10 +142,12 @@ class BaseArkApi:
|
||||
return msgspec.convert(unpack_data, ArknightsAttendanceModel)
|
||||
|
||||
async def get_sign_info(
|
||||
self, uid: str
|
||||
self,
|
||||
uid: str,
|
||||
) -> Union[int, ArknightsAttendanceCalendarModel]:
|
||||
cred: Union[str, None] = await ArknightsUser.get_user_attr_by_uid(
|
||||
uid=uid, attr="cred"
|
||||
uid=uid,
|
||||
attr="cred",
|
||||
)
|
||||
if cred is None:
|
||||
return -60
|
||||
@ -187,7 +194,10 @@ class BaseArkApi:
|
||||
cred = (
|
||||
cred
|
||||
if cred
|
||||
else await ArknightsUser.get_user_attr_by_uid(uid=uid, attr="cred")
|
||||
else await ArknightsUser.get_user_attr_by_uid(
|
||||
uid=uid,
|
||||
attr="cred",
|
||||
)
|
||||
)
|
||||
header = deepcopy(_HEADER)
|
||||
if cred is None:
|
||||
@ -222,7 +232,9 @@ class BaseArkApi:
|
||||
uid = await ArknightsUser.get_uid_by_cred(cred)
|
||||
if uid is not None:
|
||||
await ArknightsUser.update_user_attr_by_uid(
|
||||
uid=uid, attr="token", value=token
|
||||
uid=uid,
|
||||
attr="token",
|
||||
value=token,
|
||||
)
|
||||
return token
|
||||
|
||||
@ -263,12 +275,7 @@ class BaseArkApi:
|
||||
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")
|
||||
)
|
||||
sign = hashlib.md5(hex_s.encode("utf-8")).hexdigest().encode("utf-8").decode("utf-8")
|
||||
header["sign"] = sign
|
||||
header["timestamp"] = timestamp
|
||||
header["dId"] = dId
|
||||
@ -317,7 +324,7 @@ class BaseArkApi:
|
||||
use_proxy: Union[bool, None] = False,
|
||||
) -> Union[Dict, Union[int, None]]:
|
||||
async with ClientSession(
|
||||
connector=TCPConnector(verify_ssl=ssl_verify)
|
||||
connector=TCPConnector(verify_ssl=ssl_verify),
|
||||
) as client:
|
||||
raw_data = {}
|
||||
if "cred" not in header:
|
||||
|
@ -40,9 +40,7 @@ class ArknightsUser(User, table=True):
|
||||
|
||||
@classmethod
|
||||
@with_session
|
||||
async def get_all_user(
|
||||
cls: Type[T_ARK_User], session: AsyncSession
|
||||
) -> Sequence[T_ARK_User]:
|
||||
async def get_all_user(cls: Type[T_ARK_User], session: AsyncSession) -> Sequence[T_ARK_User]:
|
||||
sql = select(cls).where(cls.cred is not None, cls.cred != "")
|
||||
result = await session.execute(sql)
|
||||
data: Sequence[T_ARK_User] = result.scalars().all()
|
||||
@ -88,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):
|
||||
@ -144,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
|
||||
|
@ -318,9 +318,7 @@ class BuildingDataCustomDataDiyUISortTemplateListData(BaseStruct):
|
||||
expandState: str
|
||||
defaultTemplateIndex: int
|
||||
defaultTemplateOrder: str
|
||||
templates: List[
|
||||
BuildingDataCustomDataDiyUISortTemplateListDataDiyUISortTemplateData
|
||||
]
|
||||
templates: List[BuildingDataCustomDataDiyUISortTemplateListDataDiyUISortTemplateData]
|
||||
|
||||
|
||||
class BuildingDataCustomData(BaseStruct):
|
||||
|
@ -130,6 +130,13 @@ class GachaDataFesGachaPoolRelateItem(BaseStruct):
|
||||
rarityRank6ItemId: str
|
||||
|
||||
|
||||
class GachaNormalItem(BaseStruct):
|
||||
itemId: str
|
||||
endTime: int
|
||||
gachaPoolId: str
|
||||
isTen: bool
|
||||
|
||||
|
||||
class GachaTable(BaseStruct):
|
||||
__version__ = "24-02-02-10-18-07-831ad8"
|
||||
|
||||
@ -137,6 +144,7 @@ class GachaTable(BaseStruct):
|
||||
carousel: List[GachaDataCarouselData]
|
||||
classicPotentialMaterialConverter: PotentialMaterialConverterConfig
|
||||
dicRecruit6StarHint: Union[Dict[str, str], None]
|
||||
normalGachaItem: List[GachaNormalItem]
|
||||
fesGachaPoolRelateItem: Union[
|
||||
Dict[str, GachaDataFesGachaPoolRelateItem],
|
||||
None,
|
||||
|
@ -1,3 +1,3 @@
|
||||
ArknightsUID_version = "0.1.0"
|
||||
Arknights_Client_version = "2.2.21"
|
||||
Arknights_Res_version = "24-03-29-14-33-44-5002d2"
|
||||
Arknights_Client_version = "2.2.41"
|
||||
Arknights_Res_version = "24-04-26-09-22-08-413e02"
|
||||
|
@ -56,7 +56,7 @@ pythonVersion = "3.8"
|
||||
pythonPlatform = "All"
|
||||
|
||||
[tool.ruff]
|
||||
line-length = 88
|
||||
line-length = 98
|
||||
target-version = "py38"
|
||||
|
||||
[tool.ruff.lint]
|
||||
|
Loading…
x
Reference in New Issue
Block a user