def fetch_new_tweets(user_id, token_key, token_secret, since_id=None): return logging.info('Fetching new tweets for user %d...' % user_id) user = User.get_by_key_name(str(user_id)) if not user: return logging.error('User not found.') if since_id is None: last_tweet = user.tweets.order('-created_at').get() since_id = last_tweet.id if last_tweet else None logging.info('Found last tweet by date: %d' % since_id) api = make_api(token_key, token_secret) tweets = api.user_timeline(since_id=since_id, count=settings.BATCH_SIZE) if tweets: entities = [] for tweet in tweets: entities.append(make_tweet(tweet)) db.put(entities) deferred.defer(fetch_new_tweets, user_id, token_key, token_secret, tweets[-1].id)
def api(self): """Makes an authenticated tweepy.API object for this user.""" if hasattr(self, '_api'): return self._api self._api = make_api(self.api_key, self.api_secret) return self._api