コード例 #1
0
ファイル: api.py プロジェクト: dhananjaysathe/tweepy
 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()
コード例 #2
0
 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
コード例 #3
0
ファイル: api.py プロジェクト: hoongun/tweepy
 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()
コード例 #4
0
ファイル: api.py プロジェクト: abhinavgupta/tweepy
 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()
コード例 #5
0
ファイル: api.py プロジェクト: mikkeluk/tweepy
 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
コード例 #6
0
    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!")
コード例 #7
0
    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
コード例 #8
0
    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))
            )
コード例 #9
0
 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)
コード例 #10
0
    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)))
コード例 #11
0
    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