Beispiel #1
0
    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'])
Beispiel #3
0
    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
Beispiel #4
0
    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)
Beispiel #5
0
 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
Beispiel #6
0
 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
Beispiel #7
0
    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)
Beispiel #8
0
    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'])
Beispiel #9
0
    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