def __init__(self, auth_handler=None, host='api.twitter.com', search_host='search.twitter.com', cache=None, secure=False, api_root='/1', search_root='', retry_count=0, retry_delay=0, retry_errors=None, parser=None, proxy_host=None, proxy_port=80): self.auth = auth_handler if auth_handler: auth_handler.api = self self.host = host self.search_host = search_host self.api_root = api_root self.search_root = search_root self.cache = cache self.secure = secure self.retry_count = retry_count self.retry_delay = retry_delay self.retry_errors = retry_errors self.proxy_port = proxy_port self.proxy_host = proxy_host self.parser = parser or ModelParser()
def __init__(self, auth_handler=None, host='api.twitter.com', search_host='api.twitter.com', cache=None, secure=True, api_root='/1.1', search_root='/1.1', retry_count=0, retry_delay=0, retry_errors=None, parser=None, monitor_rate_limit=False, wait_on_rate_limit=False): self.auth = auth_handler if auth_handler is None or not hasattr( auth_handler, '__iter__') else auth_handler[0] self.auths = None if auth_handler is None else list( auth_handler) if hasattr(auth_handler, '__iter__') else [auth_handler] self._auth_idx = None if auth_handler is None else 0 self.host = host self.search_host = search_host self.api_root = api_root self.search_root = search_root self.cache = cache self.secure = secure self.retry_count = retry_count self.retry_delay = retry_delay self.retry_errors = retry_errors self.parser = parser or ModelParser() self.monitor_rate_limit = monitor_rate_limit self.wait_on_rate_limit = wait_on_rate_limit
def __init__(self, auth_handler=None, host='api.twitter.com', search_host='search.twitter.com', upload_host='api.twitter.com', cache=None, secure=True, api_root='/1.1', search_root='', upload_root='/1.1', retry_count=0, retry_delay=0, retry_errors=None, parser=None): self.auth = auth_handler self.host = host self.search_host = search_host self.upload_host = upload_host self.api_root = api_root self.search_root = search_root self.upload_root = upload_root self.cache = cache self.secure = secure self.retry_count = retry_count self.retry_delay = retry_delay self.retry_errors = retry_errors self.parser = parser or ModelParser()
def __init__(self, auth_handler=None, host='api.twitter.com', search_host='search.twitter.com', cache=None, secure=True, api_root='/1.1', search_root='', retry_count=0, retry_delay=0, retry_errors=None, timeout=60, parser=None, compression=False): self.auth = auth_handler self.host = host self.search_host = search_host self.api_root = api_root self.search_root = search_root self.cache = cache self.secure = secure self.compression = compression self.retry_count = retry_count self.retry_delay = retry_delay self.retry_errors = retry_errors self.timeout = timeout self.parser = parser or ModelParser()
def __init__(self, auth_handler=None, host='api.twitter.com', search_host='search.twitter.com', cache=None, api_root='/1.1', search_root='', retry_count=0, retry_delay=0, retry_errors=None, timeout=60, parser=None, compression=False, wait_on_rate_limit=False, wait_on_rate_limit_notify=False, proxy=None): self.auth = auth_handler self.host = host self.search_host = search_host self.api_root = api_root self.search_root = search_root self.cache = cache self.compression = compression self.retry_count = retry_count self.retry_delay = retry_delay self.retry_errors = retry_errors self.timeout = timeout self.wait_on_rate_limit = wait_on_rate_limit self.wait_on_rate_limit_notify = wait_on_rate_limit_notify self.parser = parser or ModelParser() self.proxy = {} if proxy: self.proxy['https'] = proxy
def __init__(self, storage_dir=False, db=False): """Initialise the API.""" if not db and not storage_dir: raise TypeError( "Twitter() needs either a storage_dir or a db argument." ) if not db: db = DB(storage_dir) self.db = db ck = self.db.get_config('consumer_key') cs = self.db.get_config('consumer_secret') at = self.db.get_config('access_token') ats = self.db.get_config('access_token_secret') mf = wtModelFactory() pr = ModelParser(model_factory=mf) self.auth = OAuthHandler(ck, cs) self.auth.set_access_token(at, ats) self.api = API(self.auth, parser=pr) try: self.api.me().name except TweepError as error: raise TwitterError("Could not connect to Twitter: %s" % error) except TypeError as error: raise TwitterError("Your keys haven't been set correctly!")
def next(self): """Fetch a set of items with IDs less than current set.""" if self.limit and self.limit == self.num_tweets: raise StopIteration if self.index >= len(self.results) - 1: data = self.method(max_id=self.max_id, parser=RawParser(), *self.args, **self.kwargs) # This is a special invocation that returns the underlying # APIMethod class model = ModelParser().parse(self.method(create=True), data) result = self.method.__self__.parser.parse( self.method(create=True), data) if len(self.results) != 0: self.index += 1 self.results.append(result) self.model_results.append(model) else: self.index += 1 result = self.results[self.index] model = self.model_results[self.index] if len(result) == 0: raise StopIteration # TODO: Make this not dependant on the parser making max_id and # since_id available self.max_id = model.max_id self.num_tweets += 1 return result
def __init__(self, auth_handler=None, host='api.twitter.com', search_host='search.twitter.com', upload_host='upload.twitter.com', cache=None, secure=True, api_root='/1.1', search_root='', upload_root='/1.1', retry_count=0, retry_delay=0, retry_errors=None, timeout=60, parser=None, compression=False, wait_on_rate_limit=False, wait_on_rate_limit_notify=False): """ Api instance Constructor :param auth_handler: :param host: url of the server of the rest api, default:'api.twitter.com' :param search_host: url of the search server, default:'search.twitter.com' :param cache: Cache to query if a GET method is used, default:None :param api_root: suffix of the api version, default:'/1.1' :param search_root: suffix of the search version, default:'' :param retry_count: number of allowed retries, default:0 :param retry_delay: delay in second between retries, default:0 :param retry_errors: default:None :param timeout: delay before to consider the request as timed out in seconds, default:60 :param parser: ModelParser instance to parse the responses, default:None :param compression: If the response is compressed, default:False :param wait_on_rate_limit: If the api wait when it hits the rate limit, default:False :param wait_on_rate_limit_notify: If the api print a notification when the rate limit is hit, default:False :param proxy: Url to use as proxy during the HTTP request, default:'' :raise TypeError: If the given parser is not a ModelParser instance. """ self.auth = auth_handler self.host = host self.search_host = search_host self.upload_host = upload_host self.api_root = api_root self.search_root = search_root self.upload_root = upload_root self.cache = cache self.compression = compression self.retry_count = retry_count self.retry_delay = retry_delay self.retry_errors = retry_errors self.timeout = timeout self.wait_on_rate_limit = wait_on_rate_limit self.wait_on_rate_limit_notify = wait_on_rate_limit_notify self.parser = parser or ModelParser() self.proxy = {} if proxy: self.proxy['https'] = proxy # Attempt to explain more clearly the parser argument requirements # https://github.com/tweepy/tweepy/issues/421 # parser_type = Parser if not isinstance(self.parser, parser_type): raise TypeError( '"parser" argument has to be an instance of "{}".' ' It is currently a {}.'.format(parser_type.__name__, type(self.parser)) )
def __init__(self, auth_handler=None, host='api.twitter.com', search_host='search.twitter.com', cache=None, secure=False, api_root='/1', search_root='', retry_count=0, retry_delay=0, retry_errors=None, parser=None, source_address='',source_port=0): self.auth = auth_handler self.host = host self.search_host = search_host self.api_root = api_root self.search_root = search_root self.cache = cache self.secure = secure self.retry_count = retry_count self.retry_delay = retry_delay self.retry_errors = retry_errors self.parser = parser or ModelParser() self.source_address = (source_address,source_port)
def __init__(self, auth_handler=None, host='api.twitter.com', search_host='search.twitter.com', cache=None, api_root='/1.1', search_root='', retry_count=0, retry_delay=0, retry_errors=None, timeout=60, parser=None, compression=False, wait_on_rate_limit=False, wait_on_rate_limit_notify=False, proxy=None): self.auth = auth_handler self.host = host self.search_host = search_host self.api_root = api_root self.search_root = search_root self.cache = cache self.compression = compression self.retry_count = retry_count self.retry_delay = retry_delay self.retry_errors = retry_errors self.timeout = timeout self.wait_on_rate_limit = wait_on_rate_limit self.wait_on_rate_limit_notify = wait_on_rate_limit_notify self.parser = parser or ModelParser() self.proxy = {} if proxy: self.proxy['https'] = proxy # Attempt to explain more clearly the parser argument requirements # https://github.com/tweepy/tweepy/issues/421 # parser_type = Parser if not isinstance(self.parser, parser_type): raise TypeError( '"parser" argument has to be an instance of "{}". It is currently a {}.' .format(parser_type.__name__, type(self.parser)))
def next(self): """Fetch a set of items with IDs less than current set.""" if self.num_tweets >= self.limit: raise StopIteration if self.index >= len(self.results) - 1: data = self.method(max_id=self.max_id, parser=RawParser(), *self.args, **self.kwargs) model = ModelParser().parse(data, api=self.method.__self__, payload_list=self.method.payload_list, payload_type=self.method.payload_type) result = self.method.__self__.parser.parse( data, api=self.method.__self__, payload_list=self.method.payload_list, payload_type=self.method.payload_type) if len(self.results) != 0: self.index += 1 self.results.append(result) self.model_results.append(model) else: self.index += 1 result = self.results[self.index] model = self.model_results[self.index] if len(result) == 0: raise StopIteration # TODO: Make this not dependant on the parser making max_id and # since_id available self.max_id = model.max_id self.num_tweets += 1 return result