def check_access_token(self): """ Add few seconds to now so the token get refreshed before it invalidates in the middle of the request """ now_s = get_time() + 120 if self._access_token is not None: if self._access_token_expiry == 0: self.log.debug( 'No Access Token Expiry found - assuming it is still valid!' ) return True elif self._access_token_expiry > now_s: h, m, s = get_format_time_diff(now_s, self._access_token_expiry, False) self.log.debug( 'Access Token still valid for further %02d:%02d:%02d hours (%s < %s)', h, m, s, now_s, self._access_token_expiry) return True else: self.log.info('Access Token expired!') return False else: self.log.debug('No Access Token available!') return False
def check_authentication(self, response_dict): if isinstance(response_dict, dict) and ('auth_ticket' in response_dict) and \ ('expire_timestamp_ms' in response_dict['auth_ticket']) and \ (self._auth_provider.is_new_ticket(response_dict['auth_ticket']['expire_timestamp_ms'])): had_ticket = self._auth_provider.has_ticket() auth_ticket = response_dict['auth_ticket'] self._auth_provider.set_ticket([ auth_ticket['expire_timestamp_ms'], base64.standard_b64decode(auth_ticket['start']), base64.standard_b64decode(auth_ticket['end']) ]) now_ms = get_time(ms=True) h, m, s = get_format_time_diff(now_ms, auth_ticket['expire_timestamp_ms'], True) if had_ticket: self.log.debug( 'Replacing old Session Ticket with new one valid for %02d:%02d:%02d hours (%s < %s)', h, m, s, now_ms, auth_ticket['expire_timestamp_ms']) else: self.log.debug( 'Received Session Ticket valid for %02d:%02d:%02d hours (%s < %s)', h, m, s, now_ms, auth_ticket['expire_timestamp_ms'])
def request(self, endpoint, subrequests, player_position): if not self._auth_provider or self._auth_provider.is_login() is False: raise NotLoggedInException() request_proto = self._build_main_request(subrequests, player_position) response = self._make_rpc(endpoint, request_proto) response_dict = self._parse_main_response(response, subrequests) if ('auth_ticket' in response_dict) and ('expire_timestamp_ms' in response_dict['auth_ticket']) and (self._auth_provider.is_new_ticket(response_dict['auth_ticket']['expire_timestamp_ms'])): had_ticket = self._auth_provider.has_ticket() auth_ticket = response_dict['auth_ticket'] self._auth_provider.set_ticket( [auth_ticket['expire_timestamp_ms'], base64.standard_b64decode(auth_ticket['start']), base64.standard_b64decode(auth_ticket['end'])]) now_ms = get_time_ms() h, m, s = get_format_time_diff(now_ms, auth_ticket['expire_timestamp_ms'], True) if had_ticket: self.log.debug('Replacing old auth ticket with new one valid for %02d:%02d:%02d hours (%s < %s)', h, m, s, now_ms, auth_ticket['expire_timestamp_ms']) else: self.log.debug('Received auth ticket valid for %02d:%02d:%02d hours (%s < %s)', h, m, s, now_ms, auth_ticket['expire_timestamp_ms']) if isinstance(response_dict, dict) and 'status_code' in response_dict: sc = response_dict['status_code'] if sc == 102: raise NotLoggedInException() elif sc == 52: raise ServerSideRequestThrottlingException("Request throttled by server... slow down man") return response_dict
def check_authentication(self, expire_timestamp_ms, start, end): if self._auth_provider.is_new_ticket(expire_timestamp_ms): had_ticket = self._auth_provider.has_ticket() self._auth_provider.set_ticket([expire_timestamp_ms, start, end]) now_ms = get_time(ms=True) h, m, s = get_format_time_diff(now_ms, expire_timestamp_ms, True) if had_ticket: self.log.debug('Replacing old Session Ticket with new one valid for %02d:%02d:%02d hours (%s < %s)', h, m, s, now_ms, expire_timestamp_ms) else: self.log.debug('Received Session Ticket valid for %02d:%02d:%02d hours (%s < %s)', h, m, s, now_ms, expire_timestamp_ms)
def check_ticket(self): if self.has_ticket(): now_ms = get_time(ms = True) if now_ms < (self._ticket_expire - 10000): h, m, s = get_format_time_diff(now_ms, self._ticket_expire, True) self.log.debug('Session Ticket still valid for further %02d:%02d:%02d hours (%s < %s)', h, m, s, now_ms, self._ticket_expire) return True else: self.log.debug('Removed expired Session Ticket (%s < %s)', now_ms, self._ticket_expire) self._ticket_expire, self._ticket_start, self._ticket_end = (None, None, None) return False else: return False
def check_ticket(self): if self.has_ticket(): now_ms = get_time(ms=True) if now_ms < (self._ticket_expire - 10000): h, m, s = get_format_time_diff(now_ms, self._ticket_expire, True) self.log.debug('Session Ticket still valid for further %02d:%02d:%02d hours (%s < %s)', h, m, s, now_ms, self._ticket_expire) return True else: self.log.debug('Removed expired Session Ticket (%s < %s)', now_ms, self._ticket_expire) self._ticket_expire, self._ticket_start, self._ticket_end = (None, None, None) return False else: return False
def check_authentication(self, response_dict): if isinstance(response_dict, dict) and ('auth_ticket' in response_dict) and \ ('expire_timestamp_ms' in response_dict['auth_ticket']) and \ (self._auth_provider.is_new_ticket(response_dict['auth_ticket']['expire_timestamp_ms'])): had_ticket = self._auth_provider.has_ticket() auth_ticket = response_dict['auth_ticket'] self._auth_provider.set_ticket( [auth_ticket['expire_timestamp_ms'], base64.standard_b64decode(auth_ticket['start']), base64.standard_b64decode(auth_ticket['end'])]) now_ms = get_time(ms=True) h, m, s = get_format_time_diff(now_ms, auth_ticket['expire_timestamp_ms'], True) if had_ticket: self.log.debug('Replacing old Session Ticket with new one valid for %02d:%02d:%02d hours (%s < %s)', h, m, s, now_ms, auth_ticket['expire_timestamp_ms']) else: self.log.debug('Received Session Ticket valid for %02d:%02d:%02d hours (%s < %s)', h, m, s, now_ms, auth_ticket['expire_timestamp_ms'])
def check_access_token(self): """ Add few seconds to now so the token get refreshed before it invalidates in the middle of the request """ now_s = get_time() + 120 if self._access_token is not None: if self._access_token_expiry == 0: self.log.debug('No Access Token Expiry found - assuming it is still valid!') return True elif self._access_token_expiry > now_s: h, m, s = get_format_time_diff(now_s, self._access_token_expiry, False) self.log.debug('Access Token still valid for further %02d:%02d:%02d hours (%s < %s)', h, m, s, now_s, self._access_token_expiry) return True else: self.log.info('Access Token expired!') return False else: self.log.debug('No Access Token available!') return False