def on_token_error(e): errcode = getattr(e, 'code', None) # if obtaining an token fails, it may be because our time is set incorrectly. # we can use the Date: header returned by Twitter's servers to adjust for # this. if errcode == 401: server_date = getattr(e, 'hdrs', {}).get('Date', None) retries_after_401 = getattr(self.protocol, 'retries_after_401', 0) if server_date and retries_after_401 < 1: self.protocol.retries_after_401 = retries_after_401 + 1 log.warning('on_token_error: server date is %r', server_date) server_date = parse_http_date(server_date) log.warning( 'on_token_Error: RETRYING WITH NEW SERVER DATE %r', server_date) twitter_auth.set_server_timestamp(server_date) return twitter_auth.get_oauth_token( self.username, self.password, success=on_token, error=on_token_error) state = 'autherror' if errcode == 401 else 'connfail' log.error('on_token_error: e.code is %r', errcode) log.error(' changing state to %r', state) self.protocol.events.state_changed(state)
def on_token_error(e): errcode = getattr(e, 'code', None) # if obtaining an token fails, it may be because our time is set incorrectly. # we can use the Date: header returned by Twitter's servers to adjust for # this. if errcode == 401: server_date = getattr(e, 'hdrs', {}).get('Date', None) retries_after_401 = getattr(self.protocol, 'retries_after_401', 0) if server_date and retries_after_401 < 1: self.protocol.retries_after_401 = retries_after_401 + 1 log.warning('on_token_error: server date is %r', server_date) server_date = parse_http_date(server_date) log.warning('on_token_Error: RETRYING WITH NEW SERVER DATE %r', server_date) twitter_auth.set_server_timestamp(server_date) return twitter_auth.get_oauth_token(self.username, self.password, success=on_token, error=on_token_error) state = 'autherror' if errcode == 401 else 'connfail' log.error('on_token_error: e.code is %r', errcode) log.error(' changing state to %r', state) self.protocol.events.state_changed(state)
def when_load(): self.protocol._verify_databases() self.evaljs('window.resdir = %s' % simplejson.dumps((path(__file__).parent / 'res').url())) def success(token): opts = dict(username=self.username, password=self.password, feeds=userfeeds, accountopts=accountopts or {}) if token is not None: assert hasattr(token, 'key'), repr(token) opts.update(oauthTokenKey = token.key, oauthTokenSecret = token.secret, oauthConsumerKey = twitter_auth.CONSUMER_KEY, oauthConsumerSecret = twitter_auth.CONSUMER_SECRET) time_correction = twitter_auth.get_time_correction() if time_correction is not None: opts['accountopts'].update(timeCorrectionSecs=-time_correction) self.JSCall('initialize', **opts) api_server = getattr(self.protocol.account, 'api_server', None) if api_server is not None: return success(None) if self.oauth_token is not None: try: token = OAuthToken.from_string(self.oauth_token) except Exception: traceback.print_exc() else: log.info('using token stored in account') return success(token) def on_token(token): token_string = token.to_string() log.info('on_token received token from network: %r', token_string[:5]) self.protocol.account.update_info(oauth_token=token_string) success(token) def on_token_error(e): errcode = getattr(e, 'code', None) # if obtaining an token fails, it may be because our time is set incorrectly. # we can use the Date: header returned by Twitter's servers to adjust for # this. if errcode == 401: server_date = getattr(e, 'hdrs', {}).get('Date', None) retries_after_401 = getattr(self.protocol, 'retries_after_401', 0) if server_date and retries_after_401 < 1: self.protocol.retries_after_401 = retries_after_401 + 1 log.warning('on_token_error: server date is %r', server_date) server_date = parse_http_date(server_date) log.warning('on_token_Error: RETRYING WITH NEW SERVER DATE %r', server_date) twitter_auth.set_server_timestamp(server_date) return twitter_auth.get_oauth_token(self.username, self.password, success=on_token, error=on_token_error) state = 'autherror' if errcode == 401 else 'connfail' log.error('on_token_error: e.code is %r', errcode) log.error(' changing state to %r', state) self.protocol.events.state_changed(state) log.info('getting new oauth token from network') twitter_auth.get_oauth_token(self.username, self.password, success=on_token, error=on_token_error)
def when_load(): self.protocol._verify_databases() self.evaljs('window.resdir = %s' % simplejson.dumps( (path(__file__).parent / 'res').url())) def success(token): opts = dict(username=self.username, password=self.password, feeds=userfeeds, accountopts=accountopts or {}) if token is not None: assert hasattr(token, 'key'), repr(token) opts.update( oauthTokenKey=token.key, oauthTokenSecret=token.secret, oauthConsumerKey=twitter_auth.CONSUMER_KEY, oauthConsumerSecret=twitter_auth.CONSUMER_SECRET) time_correction = twitter_auth.get_time_correction() if time_correction is not None: opts['accountopts'].update( timeCorrectionSecs=-time_correction) self.JSCall('initialize', **opts) api_server = getattr(self.protocol.account, 'api_server', None) if api_server is not None: return success(None) if self.oauth_token is not None: try: token = OAuthToken.from_string(self.oauth_token) except Exception: traceback.print_exc() else: log.info('using token stored in account') return success(token) def on_token(token): token_string = token.to_string() log.info('on_token received token from network: %r', token_string[:5]) self.protocol.account.update_info(oauth_token=token_string) success(token) def on_token_error(e): errcode = getattr(e, 'code', None) # if obtaining an token fails, it may be because our time is set incorrectly. # we can use the Date: header returned by Twitter's servers to adjust for # this. if errcode == 401: server_date = getattr(e, 'hdrs', {}).get('Date', None) retries_after_401 = getattr(self.protocol, 'retries_after_401', 0) if server_date and retries_after_401 < 1: self.protocol.retries_after_401 = retries_after_401 + 1 log.warning('on_token_error: server date is %r', server_date) server_date = parse_http_date(server_date) log.warning( 'on_token_Error: RETRYING WITH NEW SERVER DATE %r', server_date) twitter_auth.set_server_timestamp(server_date) return twitter_auth.get_oauth_token( self.username, self.password, success=on_token, error=on_token_error) state = 'autherror' if errcode == 401 else 'connfail' log.error('on_token_error: e.code is %r', errcode) log.error(' changing state to %r', state) self.protocol.events.state_changed(state) log.info('getting new oauth token from network') twitter_auth.get_oauth_token(self.username, self.password, success=on_token, error=on_token_error)
def test_read_config_get_token(): c = read_config() get_oauth_token(c)