diff --git a/py12306/user/job.py b/py12306/user/job.py index 23d1098..131c0d7 100644 --- a/py12306/user/job.py +++ b/py12306/user/job.py @@ -191,8 +191,6 @@ class UserJob: self.session.cookies.update({ 'RAIL_EXPIRATION': result.get('exp'), 'RAIL_DEVICEID': result.get('dfp'), - # 'RAIL_EXPIRATION': '1554474881858', - # 'RAIL_DEVICEID': 'AuT-Gn6_zBqrgut3m5pj-OtRGGHDAKXfCDKI3SlDT98JBD-XzxPH08tjaplcAW5aKb8nyX90r92psp5QpwRIGTn6XeIwiQxvuwEnqseza6mPSAu_gmrGCLVpFvCbDUky4EB-UTjDH-ozAHx1oaz5KkvGgakW0Jou', }) except: return False @@ -285,20 +283,17 @@ class UserJob: params[key] = item data_str = self._encode_data_str(data_str) data_str_len = len(data_str) - data_str_len_div = int(data_str_len / 2) - if data_str_len % 2 == 0: - data_str = data_str[data_str_len_div:data_str_len] + data_str[0:data_str_len_div] - else: - data_str = data_str[data_str_len_div + 1:data_str_len] + \ - data_str[data_str_len_div] + data_str[0:data_str_len_div] - - data_str = self._encode_data_str(data_str) + data_str_f = int(data_str_len / 3) if data_str_len % 3 == 0 else int(data_str_len / 3) + 1 + if data_str_len >= 3: + data_str = data_str[data_str_f:2*data_str_f] + data_str[2*data_str_f:data_str_len] + data_str[0: data_str_f] + data_str = data_str[::-1] data_str_tmp = "" for e in range(0, len(data_str)): data_str_code = ord(data_str[e]) data_str_tmp += chr(0) if data_str_code == 127 else chr(data_str_code + 1) - data_str = self._encode_string(data_str_tmp[::-1]) + data_str = self._encode_data_str(data_str_tmp) + data_str = self._encode_string(data_str) params['hashCode'] = data_str return params @@ -308,7 +303,7 @@ class UserJob: if data_str_len >= 3: data_str_e = data_str[0:data_str_len_tmp] data_str_f = data_str[data_str_len_tmp:2 * data_str_len_tmp] - return data_str_f + data_str[2 * data_str_len_tmp:data_str_len] + data_str_e + return data_str[2 * data_str_len_tmp:data_str_len] + data_str_e + data_str_f return data_str def _encode_string(self, str):