From d2d02f948307517d630b57ae0df76d2c7b302494 Mon Sep 17 00:00:00 2001 From: Hay1tsme Date: Sun, 26 Nov 2023 19:24:36 -0500 Subject: [PATCH] diva: add list decoders --- titles/diva/handlers/base.py | 6 ++ titles/diva/handlers/pv.py | 127 ++++++++++++++++++----------------- 2 files changed, 70 insertions(+), 63 deletions(-) diff --git a/titles/diva/handlers/base.py b/titles/diva/handlers/base.py index d083cb1..19b6794 100644 --- a/titles/diva/handlers/base.py +++ b/titles/diva/handlers/base.py @@ -241,3 +241,9 @@ def encode_list(key: str, val: Union[List[Any], None], urlencode_final_val: boo all_vals = quote(all_vals) return f"{key}={all_vals}" + +def decode_list_int(val: str) -> List[int]: + return [int(x) for x in val.split(",")] + +def decode_list(val: str) -> List[str]: + return [x for x in val.split(",")] \ No newline at end of file diff --git a/titles/diva/handlers/pv.py b/titles/diva/handlers/pv.py index 458d05f..6767c22 100644 --- a/titles/diva/handlers/pv.py +++ b/titles/diva/handlers/pv.py @@ -3,6 +3,7 @@ from titles.diva.handlers.base import ( BaseRequest, BaseResponse, DivaRequestParseException, + decode_list_int ) from datetime import datetime from urllib import parse @@ -58,69 +59,69 @@ class StageResultRequest(BaseRequest): self.cr_tv = int(self.cr_tv) self.cr_if = int(self.cr_if) - self.my_qst_id: List[int] = [int(x) for x in self.my_qst_id.split(",")] - self.my_qst_sts: List[int] = [int(x) for x in self.my_qst_sts.split(",")] - self.stg_difficulty: List[int] = [int(x) for x in self.stg_difficulty.split(",")] - self.stg_edtn: List[int] = [int(x) for x in self.stg_edtn.split(",")] - self.stg_ply_pv_id: List[int] = [int(x) for x in self.stg_ply_pv_id.split(",")] - self.stg_sel_pv_id: List[int] = [int(x) for x in self.stg_sel_pv_id.split(",")] - self.stg_scrpt_ver: List[int] = [int(x) for x in self.stg_scrpt_ver.split(",")] - self.stg_score: List[int] = [int(x) for x in self.stg_score.split(",")] - self.stg_chllng_kind: List[int] = [int(x) for x in self.stg_chllng_kind.split(",")] - self.stg_chllng_result: List[int] = [int(x) for x in self.stg_chllng_result.split(",")] - self.stg_clr_kind: List[int] = [int(x) for x in self.stg_clr_kind.split(",")] - self.stg_vcld_pts: List[int] = [int(x) for x in self.stg_vcld_pts.split(",")] - self.stg_cool_cnt: List[int] = [int(x) for x in self.stg_cool_cnt.split(",")] - self.stg_cool_pct: List[int] = [int(x) for x in self.stg_cool_pct.split(",")] - self.stg_fine_cnt: List[int] = [int(x) for x in self.stg_fine_cnt.split(",")] - self.stg_fine_pct: List[int] = [int(x) for x in self.stg_fine_pct.split(",")] - self.stg_safe_cnt: List[int] = [int(x) for x in self.stg_safe_cnt.split(",")] - self.stg_safe_pct: List[int] = [int(x) for x in self.stg_safe_pct.split(",")] - self.stg_sad_cnt: List[int] = [int(x) for x in self.stg_sad_cnt.split(",")] - self.stg_sad_pct: List[int] = [int(x) for x in self.stg_sad_pct.split(",")] - self.stg_wt_wg_cnt: List[int] = [int(x) for x in self.stg_wt_wg_cnt.split(",")] - self.stg_wt_wg_pct: List[int] = [int(x) for x in self.stg_wt_wg_pct.split(",")] - self.stg_max_cmb: List[int] = [int(x) for x in self.stg_max_cmb.split(",")] - self.stg_chance_tm: List[int] = [int(x) for x in self.stg_chance_tm.split(",")] - self.stg_sm_hl: List[int] = [int(x) for x in self.stg_sm_hl.split(",")] - self.stg_atn_pnt: List[int] = [int(x) for x in self.stg_atn_pnt.split(",")] - self.stg_skin_id: List[int] = [int(x) for x in self.stg_skin_id.split(",")] - self.stg_btn_se: List[int] = [int(x) for x in self.stg_btn_se.split(",")] - self.stg_btn_se_vol: List[int] = [int(x) for x in self.stg_btn_se_vol.split(",")] - self.stg_sld_se: List[int] = [int(x) for x in self.stg_sld_se.split(",")] - self.stg_chn_sld_se: List[int] = [int(x) for x in self.stg_chn_sld_se.split(",")] - self.stg_sldr_tch_se: List[int] = [int(x) for x in self.stg_sldr_tch_se.split(",")] - self.stg_mdl_id: List[int] = [int(x) for x in self.stg_mdl_id.split(",")] - self.stg_sel_mdl_id: List[int] = [int(x) for x in self.stg_sel_mdl_id.split(",")] - self.stg_rvl_pd_id: List[int] = [int(x) for x in self.stg_rvl_pd_id.split(",")] - self.stg_rvl_wl: List[int] = [int(x) for x in self.stg_rvl_wl.split(",")] - self.stg_cpt_rslt: List[int] = [int(x) for x in self.stg_cpt_rslt.split(",")] - self.stg_sld_scr: List[int] = [int(x) for x in self.stg_sld_scr.split(",")] - self.stg_is_sr_gm: List[int] = [int(x) for x in self.stg_is_sr_gm.split(",")] - self.stg_pv_brnch_rslt: List[int] = [int(x) for x in self.stg_pv_brnch_rslt.split(",")] - self.stg_vcl_chg: List[int] = [int(x) for x in self.stg_vcl_chg.split(",")] - self.stg_c_itm_id: List[int] = [int(x) for x in self.stg_c_itm_id.split(",")] - self.stg_ms_itm_flg: List[int] = [int(x) for x in self.stg_ms_itm_flg.split(",")] - self.stg_rgo: List[int] = [int(x) for x in self.stg_rgo.split(",")] - self.stg_ss_num: List[int] = [int(x) for x in self.stg_ss_num.split(",")] - self.stg_is_cs_scs: List[int] = [int(x) for x in self.stg_is_cs_scs.split(",")] - self.stg_is_nppg_use: List[int] = [int(x) for x in self.stg_is_nppg_use.split(",")] - self.stg_p_std_lo_id: List[int] = [int(x) for x in self.stg_p_std_lo_id.split(",")] - self.stg_p_std_is_to: List[int] = [int(x) for x in self.stg_p_std_is_to.split(",")] - self.stg_p_std_is_ccu: List[int] = [int(x) for x in self.stg_p_std_is_ccu.split(",")] - self.stg_p_std_is_tiu: List[int] = [int(x) for x in self.stg_p_std_is_tiu.split(",")] - self.stg_p_std_is_iu: List[int] = [int(x) for x in self.stg_p_std_is_iu.split(",")] - self.stg_p_std_is_npu: List[int] = [int(x) for x in self.stg_p_std_is_npu.split(",")] - self.stg_p_std_is_du: List[int] = [int(x) for x in self.stg_p_std_is_du.split(",")] - self.gu_cmd: List[int] = [int(x) for x in self.gu_cmd.split(",")] - self.mdl_eqp_cmn_ary: List[int] = [int(x) for x in self.mdl_eqp_cmn_ary.split(",")] - self.c_itm_eqp_cmn_ary: List[int] = [int(x) for x in self.c_itm_eqp_cmn_ary.split(",")] - self.ms_itm_flg_cmn_ary: List[int] = [int(x) for x in self.ms_itm_flg_cmn_ary.split(",")] - self.mdl_eqp_pv_ary: List[int] = [int(x) for x in self.mdl_eqp_pv_ary.split(",")] - self.c_itm_eqp_pv_ary: List[int] = [int(x) for x in self.c_itm_eqp_pv_ary.split(",")] - self.ms_itm_flg_pv_ary: List[int] = [int(x) for x in self.ms_itm_flg_pv_ary.split(",")] - self.stg_mdl_s_sts: List[int] = [int(x) for x in self.stg_mdl_s_sts.split(",")] - self.cr_sp: List[int] = [int(x) for x in parse.unquote(self.cr_sp).split(",")] + self.my_qst_id: List[int] = decode_list_int(self.my_qst_id) + self.my_qst_sts: List[int] = decode_list_int(self.my_qst_sts) + self.stg_difficulty: List[int] = decode_list_int(self.stg_difficulty) + self.stg_edtn: List[int] = decode_list_int(self.stg_edtn) + self.stg_ply_pv_id: List[int] = decode_list_int(self.stg_ply_pv_id) + self.stg_sel_pv_id: List[int] = decode_list_int(self.stg_sel_pv_id) + self.stg_scrpt_ver: List[int] = decode_list_int(self.stg_scrpt_ver) + self.stg_score: List[int] = decode_list_int(self.stg_score) + self.stg_chllng_kind: List[int] = decode_list_int(self.stg_chllng_kind) + self.stg_chllng_result: List[int] = decode_list_int(self.stg_chllng_result) + self.stg_clr_kind: List[int] = decode_list_int(self.stg_clr_kind) + self.stg_vcld_pts: List[int] = decode_list_int(self.stg_vcld_pts) + self.stg_cool_cnt: List[int] = decode_list_int(self.stg_cool_cnt) + self.stg_cool_pct: List[int] = decode_list_int(self.stg_cool_pct) + self.stg_fine_cnt: List[int] = decode_list_int(self.stg_fine_cnt) + self.stg_fine_pct: List[int] = decode_list_int(self.stg_fine_pct) + self.stg_safe_cnt: List[int] = decode_list_int(self.stg_safe_cnt) + self.stg_safe_pct: List[int] = decode_list_int(self.stg_safe_pct) + self.stg_sad_cnt: List[int] = decode_list_int(self.stg_sad_cnt) + self.stg_sad_pct: List[int] = decode_list_int(self.stg_sad_pct) + self.stg_wt_wg_cnt: List[int] = decode_list_int(self.stg_wt_wg_cnt) + self.stg_wt_wg_pct: List[int] = decode_list_int(self.stg_wt_wg_pct) + self.stg_max_cmb: List[int] = decode_list_int(self.stg_max_cmb) + self.stg_chance_tm: List[int] = decode_list_int(self.stg_chance_tm) + self.stg_sm_hl: List[int] = decode_list_int(self.stg_sm_hl) + self.stg_atn_pnt: List[int] = decode_list_int(self.stg_atn_pnt) + self.stg_skin_id: List[int] = decode_list_int(self.stg_skin_id) + self.stg_btn_se: List[int] = decode_list_int(self.stg_btn_se) + self.stg_btn_se_vol: List[int] = decode_list_int(self.stg_btn_se_vol) + self.stg_sld_se: List[int] = decode_list_int(self.stg_sld_se) + self.stg_chn_sld_se: List[int] = decode_list_int(self.stg_chn_sld_se) + self.stg_sldr_tch_se: List[int] = decode_list_int(self.stg_sldr_tch_se) + self.stg_mdl_id: List[int] = decode_list_int(self.stg_mdl_id) + self.stg_sel_mdl_id: List[int] = decode_list_int(self.stg_sel_mdl_id) + self.stg_rvl_pd_id: List[int] = decode_list_int(self.stg_rvl_pd_id) + self.stg_rvl_wl: List[int] = decode_list_int(self.stg_rvl_wl) + self.stg_cpt_rslt: List[int] = decode_list_int(self.stg_cpt_rslt) + self.stg_sld_scr: List[int] = decode_list_int(self.stg_sld_scr) + self.stg_is_sr_gm: List[int] = decode_list_int(self.stg_is_sr_gm) + self.stg_pv_brnch_rslt: List[int] = decode_list_int(self.stg_pv_brnch_rslt) + self.stg_vcl_chg: List[int] = decode_list_int(self.stg_vcl_chg) + self.stg_c_itm_id: List[int] = decode_list_int(self.stg_c_itm_id) + self.stg_ms_itm_flg: List[int] = decode_list_int(self.stg_ms_itm_flg) + self.stg_rgo: List[int] = decode_list_int(self.stg_rgo) + self.stg_ss_num: List[int] = decode_list_int(self.stg_ss_num) + self.stg_is_cs_scs: List[int] = decode_list_int(self.stg_is_cs_scs) + self.stg_is_nppg_use: List[int] = decode_list_int(self.stg_is_nppg_use) + self.stg_p_std_lo_id: List[int] = decode_list_int(self.stg_p_std_lo_id) + self.stg_p_std_is_to: List[int] = decode_list_int(self.stg_p_std_is_to) + self.stg_p_std_is_ccu: List[int] = decode_list_int(self.stg_p_std_is_ccu) + self.stg_p_std_is_tiu: List[int] = decode_list_int(self.stg_p_std_is_tiu) + self.stg_p_std_is_iu: List[int] = decode_list_int(self.stg_p_std_is_iu) + self.stg_p_std_is_npu: List[int] = decode_list_int(self.stg_p_std_is_npu) + self.stg_p_std_is_du: List[int] = decode_list_int(self.stg_p_std_is_du) + self.gu_cmd: List[int] = decode_list_int(self.gu_cmd) + self.mdl_eqp_cmn_ary: List[int] = decode_list_int(self.mdl_eqp_cmn_ary) + self.c_itm_eqp_cmn_ary: List[int] = decode_list_int(self.c_itm_eqp_cmn_ary) + self.ms_itm_flg_cmn_ary: List[int] = decode_list_int(self.ms_itm_flg_cmn_ary) + self.mdl_eqp_pv_ary: List[int] = decode_list_int(self.mdl_eqp_pv_ary) + self.c_itm_eqp_pv_ary: List[int] = decode_list_int(self.c_itm_eqp_pv_ary) + self.ms_itm_flg_pv_ary: List[int] = decode_list_int(self.ms_itm_flg_pv_ary) + self.stg_mdl_s_sts: List[int] = decode_list_int(self.stg_mdl_s_sts) + self.cr_sp: List[int] = decode_list_int(parse.unquote(self.cr_sp)) except AttributeError as e: raise DivaRequestParseException(f"StageResultRequest: {e}")