forked from Hay1tsme/artemis
diva: change how requests are decoded
This commit is contained in:
@ -95,25 +95,21 @@ class BaseRequest:
|
||||
f"time_stamp not in request data {self.raw_dict}"
|
||||
)
|
||||
|
||||
self.cmd: str
|
||||
self.req_id: str
|
||||
self.game_id: str
|
||||
self.r_rev: str
|
||||
self.kc_serial: str
|
||||
self.b_serial: str
|
||||
self.country_code: str
|
||||
|
||||
for k, v in self.raw_dict.items():
|
||||
setattr(self, k, v)
|
||||
|
||||
self.place_id = int(self.place_id, 16)
|
||||
self.start_up_mode = int(self.start_up_mode)
|
||||
self.cmm_dly_mod = int(self.cmm_dly_mod)
|
||||
self.cmm_dly_sec = int(self.cmm_dly_sec)
|
||||
self.cmm_err_mod = int(self.cmm_err_mod)
|
||||
self.region_code = int(self.region_code)
|
||||
self.cmd: str = self.raw_dict.get('cmd')
|
||||
self.req_id: str = self.raw_dict.get('req_id')
|
||||
self.game_id: str = self.raw_dict.get('game_id')
|
||||
self.r_rev: str = self.raw_dict.get('r_rev')
|
||||
self.kc_serial: str = self.raw_dict.get('kc_serial')
|
||||
self.b_serial: str = self.raw_dict.get('b_serial')
|
||||
self.country_code: str = self.raw_dict.get('country_code')
|
||||
self.place_id = int(self.raw_dict['place_id'], 16)
|
||||
self.start_up_mode = int(self.raw_dict.get('start_up_mode'))
|
||||
self.cmm_dly_mod = int(self.raw_dict.get('cmm_dly_mod'))
|
||||
self.cmm_dly_sec = int(self.raw_dict.get('cmm_dly_sec'))
|
||||
self.cmm_err_mod = int(self.raw_dict.get('cmm_err_mod'))
|
||||
self.region_code = int(self.raw_dict.get('region_code'))
|
||||
# datetime.now().astimezone().replace(microsecond=0).isoformat()
|
||||
self.time_stamp = datetime.strptime(self.time_stamp, "%Y-%m-%dT%H:%M:%S%z")
|
||||
self.time_stamp = datetime.strptime(self.raw_dict.get('time_stamp'), "%Y-%m-%dT%H:%M:%S%z")
|
||||
|
||||
class BaseResponse:
|
||||
def __init__(self, cmd_id: str, req_id: int) -> None:
|
||||
@ -144,9 +140,18 @@ class GameInitRequest(BaseRequest):
|
||||
|
||||
class AttendRequest(BaseRequest):
|
||||
def __init__(self, raw: Union[str, bytes]) -> None:
|
||||
super().__init__(raw)
|
||||
self.power_on = int(self.power_on)
|
||||
self.is_bb = bool(int(self.power_on))
|
||||
super().__init__(raw)
|
||||
if 'power_on' not in self.raw_dict:
|
||||
raise DivaRequestParseException(
|
||||
f"power_on not in request data {self.raw_dict}"
|
||||
)
|
||||
if 'is_bb' not in self.raw_dict:
|
||||
raise DivaRequestParseException(
|
||||
f"is_bb not in request data {self.raw_dict}"
|
||||
)
|
||||
|
||||
self.power_on = int(self.raw_dict.get('power_on'))
|
||||
self.is_bb = bool(int(self.raw_dict.get('is_bb')))
|
||||
|
||||
class AttendResponse(BaseResponse):
|
||||
def __init__(self, req_id: int) -> None:
|
||||
@ -162,16 +167,37 @@ class AttendResponse(BaseResponse):
|
||||
class SpendCreditRequest(BaseRequest):
|
||||
def __init__(self, raw: Union[str, bytes]) -> None:
|
||||
super().__init__(raw)
|
||||
try:
|
||||
self.pd_id = int(self.pd_id)
|
||||
self.my_qst_id = [int(x) for x in self.my_qst_id.split(",")]
|
||||
self.my_qst_sts = [int(x) for x in self.my_qst_sts.split(",")]
|
||||
self.crdt_typ = int(self.crdt_typ)
|
||||
self.cmpgn_id = [int(x) for x in self.cmpgn_id.split(",")]
|
||||
self.cmpgn_pb = [int(x) for x in self.cmpgn_pb.split(",")]
|
||||
|
||||
except AttributeError as e:
|
||||
raise DivaRequestParseException(f"StartRequest: {e}")
|
||||
if 'pd_id' not in self.raw_dict:
|
||||
raise DivaRequestParseException(
|
||||
f"pd_id not in request data {self.raw_dict}"
|
||||
)
|
||||
if 'my_qst_id' not in self.raw_dict:
|
||||
raise DivaRequestParseException(
|
||||
f"my_qst_id not in request data {self.raw_dict}"
|
||||
)
|
||||
if 'my_qst_sts' not in self.raw_dict:
|
||||
raise DivaRequestParseException(
|
||||
f"my_qst_sts not in request data {self.raw_dict}"
|
||||
)
|
||||
if 'crdt_typ' not in self.raw_dict:
|
||||
raise DivaRequestParseException(
|
||||
f"crdt_typ not in request data {self.raw_dict}"
|
||||
)
|
||||
if 'cmpgn_id' not in self.raw_dict:
|
||||
raise DivaRequestParseException(
|
||||
f"cmpgn_id not in request data {self.raw_dict}"
|
||||
)
|
||||
if 'cmpgn_pb' not in self.raw_dict:
|
||||
raise DivaRequestParseException(
|
||||
f"cmpgn_pb not in request data {self.raw_dict}"
|
||||
)
|
||||
|
||||
self.pd_id = int(self.raw_dict.get('pd_id'))
|
||||
self.my_qst_id = decode_list_int(self.raw_dict.get('my_qst_id'))
|
||||
self.my_qst_sts = decode_list_int(self.raw_dict.get('my_qst_sts'))
|
||||
self.crdt_typ = int(self.raw_dict.get('crdt_typ'))
|
||||
self.cmpgn_id = decode_list_int(self.raw_dict.get('cmpgn_id'))
|
||||
self.cmpgn_pb = decode_list_int(self.raw_dict.get('cmpgn_pb'))
|
||||
|
||||
class SpendCreditResponse(BaseResponse):
|
||||
def __init__(self, req_id: int) -> None:
|
||||
|
Reference in New Issue
Block a user