def check_for_update(filters, last): tweets = TwitterRpcMethods.do_query(filters) if last: last = datetime.fromtimestamp(last) tweets = tweets.filter(created_at__gt=last) tweet_ids = tweets.values_list("id", flat=True) keywords = Keyword.get_all_in_tweets(tweet_ids) cloud = KeywordCloud(keywords) return [str(tweet_id) for tweet_id in tweet_ids]
def test_get_all_since(self): user = User(name="username") recent_text = "recenttweet" recent_tweet = Tweet(text=recent_text, id=1337L, created_at=datetime.now(), user=user) recent_tweet.save() long_ago = datetime.now() - timedelta(days=100) recent_tweet = Tweet(text=recent_text, id=1337, created_at=datetime.now(), user=user) really_old_tweet = Tweet(id=1338L, text="oldtweet", created_at=long_ago, user=user) really_old_tweet.save() yesterday = datetime.now() - timedelta(days=1) recent_indexes = Keyword.get_all_since(yesterday) self.assertEquals(recent_indexes.count(), 1) self.assertEquals(recent_indexes[0]["keyword"], recent_text)
def search_tweets(filters): tweets = TwitterRpcMethods.do_query(filters) exclude = [] for filter in filters: if filter["type"] == "keyword": exclude.append(filter["value"]) elif filter["type"] == "user": exclude.append("@" + filter["value"]) print urlencode(filter) tweet_ids = tweets.values_list("id", flat=True) keywords = Keyword.get_all_in_tweets(tweet_ids) cloud = KeywordCloud(keywords, exclude=exclude) return {"tweet_ids": [str(tweet_id) for tweet_id in tweet_ids or []], "cloud": cloud}
def cloud(filters): tweets = TwitterRpcMethods.do_query(filters) tweet_ids = tweets.values_list("id", flat=True) keywords = Keyword.get_all_in_tweets(tweet_ids) cloud = KeywordCloud(keywords, num_keywords=100) return cloud
def test_get_all_since_no_data(self): yesterday = datetime.now() - timedelta(days=1) self.assertFalse(Keyword.get_all_since(yesterday))
def test_get_keyword_cloud_no_data(self): self.assertFalse(Keyword.get_keyword_cloud().items)