This commit is contained in:
drmext 2024-02-14 03:17:14 +00:00
parent 364409ea5d
commit 613ea0da78
No known key found for this signature in database
GPG Key ID: F1ED48FFE79A6961
3 changed files with 140 additions and 58 deletions

View File

@ -30,62 +30,63 @@ async def iidx31gamesystem_systeminfo(request: Request):
)
for mid in unlock
],
# E.grade_course(),
# E.arena_schedule(
# E.phase(3, __type="u8"),
# E.start(current_time - 600, __type="u32"),
# E.end(current_time + 600, __type="u32"),
# ),
# *[
# E.arena_reward(
# E.index(unlock.index(mid), __type="s32"),
# E.cube_num((unlock.index(mid) + 1) * 50, __type="s32"),
# E.kind(0, __type="s32"),
# E.value(mid, __type="str"),
# )
# for mid in unlock
# ],
# *[
# E.arena_music_difficult(
# E.play_style(sp_dp, __type="s32"),
# E.arena_class(arena_class, __type="s32"),
# E.low_difficult(8, __type="s32"),
# E.high_difficult(12, __type="s32"),
# E.is_leggendaria(1, __type="bool"),
# E.force_music_list_id(0, __type="s32"),
# )
# for sp_dp in (0, 1)
# for arena_class in range(20)
# ],
# *[
# E.arena_cpu_define(
# E.play_style(sp_dp, __type="s32"),
# E.arena_class(arena_class, __type="s32"),
# E.grade_id(18, __type="s32"),
# E.low_music_difficult(8, __type="s32"),
# E.high_music_difficult(12, __type="s32"),
# E.is_leggendaria(0, __type="bool"),
# )
# for sp_dp in (0, 1)
# for arena_class in range(20)
# ],
# *[
# E.maching_class_range(
# E.play_style(sp_dp, __type="s32"),
# E.matching_class(arena_class, __type="s32"),
# E.low_arena_class(arena_class, __type="s32"),
# E.high_arena_class(arena_class, __type="s32"),
# )
# for sp_dp in (0, 1)
# for arena_class in range(20)
# ],
#E.grade_course(),
E.arena_schedule(
E.phase(3, __type="u8"),
E.rule_type(1, __type="u8"),
E.start(current_time - 600, __type="u32"),
E.end(current_time + 600, __type="u32"),
),
*[
E.arena_reward(
E.index(unlock.index(mid), __type="s32"),
E.cube_num((unlock.index(mid) + 1) * 50, __type="s32"),
E.kind(0, __type="s32"),
E.value(mid, __type="str"),
)
for mid in unlock
],
*[
E.arena_music_difficult(
E.play_style(sp_dp, __type="s32"),
E.arena_class(arena_class, __type="s32"),
E.low_difficult(8, __type="s32"),
E.high_difficult(12, __type="s32"),
E.is_leggendaria(1, __type="bool"),
E.force_music_list_id(0, __type="s32"),
)
for sp_dp in (0, 1)
for arena_class in range(20)
],
*[
E.arena_cpu_define(
E.play_style(sp_dp, __type="s32"),
E.arena_class(arena_class, __type="s32"),
E.grade_id(18, __type="s32"),
E.low_music_difficult(8, __type="s32"),
E.high_music_difficult(12, __type="s32"),
E.is_leggendaria(0, __type="bool"),
)
for sp_dp in (0, 1)
for arena_class in range(20)
],
*[
E.maching_class_range(
E.play_style(sp_dp, __type="s32"),
E.matching_class(arena_class, __type="s32"),
E.low_arena_class(arena_class, __type="s32"),
E.high_arena_class(arena_class, __type="s32"),
)
for sp_dp in (0, 1)
for arena_class in range(20)
],
E.CommonBossPhase(val=0),
# E.Event1InternalPhase(val=0),
E.Event1Phase(val=0),
# E.ExtraBossEventPhase(val=0),
E.isNewSongAnother12OpenFlg(val=1),
# E.gradeOpenPhase(val=2),
# E.isEiseiOpenFlg(val=1),
# E.WorldTourismOpenList(val=-1),
E.isKiwamiOpenFlg(val=1),
E.WorldTourismOpenList(val=-1),
E.OldBPLBattleOpenPhase(val=3),
)
)

View File

@ -62,6 +62,7 @@ def calculate_folder_mask(profile):
async def iidx31pc_get(request: Request):
request_info = await core_process_request(request)
game_version = request_info["game_version"]
date_code = int(request_info["ext"])
cid = request_info["root"][0].attrib["cid"]
profile = get_game_profile(cid, game_version)
@ -219,7 +220,7 @@ async def iidx31pc_get(request: Request):
profile["fullcombo"],
0,
],
__type="s16",
__type="s32" if date_code >= 2024011600 else "s16",
),
E.tdjskin(
[
@ -301,6 +302,9 @@ async def iidx31pc_get(request: Request):
E.flg1(profile.get("wt_flg1", [-1, -1, -1]), __type="s64"),
E.flg2(profile.get("wt_flg2", [-1, -1, -1]), __type="s64"),
),
E.world_tourism_setting(
E.booster(1, __type="bool"),
),
E.world_tourism(
*[
E.tour_data(
@ -340,6 +344,8 @@ async def iidx31pc_get(request: Request):
play_style=0,
arena_class=19,
rating_value=90,
now_top_class_continuing=19,
best_top_class_continuing=19,
win_count=0,
now_winning_streak_count=0,
best_winning_streak_count=0,
@ -351,6 +357,8 @@ async def iidx31pc_get(request: Request):
play_style=1,
arena_class=19,
rating_value=90,
now_top_class_continuing=19,
best_top_class_continuing=19,
win_count=0,
now_winning_streak_count=0,
best_winning_streak_count=0,
@ -399,10 +407,11 @@ async def iidx31pc_get(request: Request):
rank4=3,
rank5=1,
),
E.player_kind_data(
kind=(random.choice([random.randint(0, 13), 0])),
),
#E.player_kind_data(
# kind=(random.choice([random.randint(0, 13), 0])),
#),
E.setting(
E.hide_shopname(0, __type="bool"),
stats_type=0,
),
E.qpro_motion(
@ -424,6 +433,9 @@ async def iidx31pc_get(request: Request):
E.nostalgia_open(),
E.language_setting(language=profile["language_setting"]),
E.movie_agreement(agreement_version=profile["movie_agreement"]),
E.movie_setting(
E.hide_name(0, __type="bool"),
),
E.bpl_virtual(),
E.lightning_play_data(
spnum=profile["lightning_play_data_spnum"],
@ -442,10 +454,14 @@ async def iidx31pc_get(request: Request):
E.kac_entry_info(
E.enable_kac_deller(),
E.disp_kac_mark(),
E.open_kac_common_music(),
E.open_kac_new_a12_music(),
E.is_kac_entry(),
E.is_kac_evnet_entry(),
E.kac_secret_music(
E.music_info(
index=0,
music_id=1000,
),
),
),
E.orb_data(
rest_orb=100,

View File

@ -0,0 +1,65 @@
import argparse
import time
from os import stat
from shutil import copy
from tinydb import TinyDB, where
from tinydb.middlewares import CachingMiddleware
from tinydb.storages import JSONStorage
def delete_scores(user_id, game):
for scores in (f"{game}_scores_best", f"{game}_scores", f"{game}_profile"):
if db.table(scores).search((where(f"{game}_id") == user_id)):
db.table(scores).remove((where(f"{game}_id") == user_id))
# special case
def delete_gitadora_scores(user_id):
for scores in (
"guitarfreaks_scores_best",
"drummania_scores_best",
"guitarfreaks_scores",
"drummania_scores",
"gitadora_profile",
):
if db.table(scores).search((where("gitadora_id") == user_id)):
db.table(scores).remove((where("gitadora_id") == user_id))
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument("-g", "--game", help="ex: ddr, gitadora, iidx", required=True)
parser.add_argument("-i", "--user_id", help="ex: 12345678", required=True)
args = parser.parse_args()
storage = CachingMiddleware(JSONStorage)
storage.WRITE_CACHE_SIZE = 5000
infile = "db.json"
outfile = f"db_{round(time.time())}.json"
copy(infile, outfile)
db = TinyDB(
infile,
indent=2,
encoding="utf-8",
ensure_ascii=False,
storage=storage,
)
start_size = stat(infile).st_size
game = args.game.lower()
user_id = int(args.user_id.replace("-", ""))
if game == "gitadora":
delete_gitadora_scores(user_id)
else:
delete_scores(user_id, game)
db.close()
end_size = stat(infile).st_size
print(f"{infile} {round((start_size - end_size) / 1024 / 1024, 2)} MiB trimmed")