Пример #1
0
 def find_topic(cls, topic_id, start_date, end_date=None):
     """ Find showable graph for time window and topic_id. """
     # Parse end date to match database values
     end_date = DateUtils.last_second_of_day(end_date if end_date else start_date)
     # Retrieve topic graph
     graph = ShowableGraphDAO().find(topic_id, start_date, end_date)
     # Normalize node size
     nodes = graph['nodes']
     sizes = list(map(lambda node: node['size'], nodes))
     max_size = max(sizes)
     # Normalize to a (0,1] vector
     for node in nodes:
         node['size'] = (node['size'] / max_size)
     # Subtract minimum value to get effective [0,1) vector and transform to wanted interval
     sizes = list(map(lambda node: node['size'], nodes))
     min_size = min(sizes)
     max_size = max(sizes) - min_size
     for node in nodes:
         node['size'] = ((node['size'] - min_size)/max_size)*(cls.MAX_SIZE - cls.MIN_SIZE) + cls.MIN_SIZE
     return graph
Пример #2
0
 def find_topic(cls, topic_id, start_date, end_date):
     end_date = DateUtils.last_second_of_day(end_date if end_date else start_date)
     document = TopicUsageDAO().find(topic_id, start_date, end_date)
     tweet_id = HashtagDAO().first_known_usage_tweet_id(topic_id)
     return HashtagUsageResponseMapper.map_one(document, tweet_id)
Пример #3
0
 def find_hashtag(cls, hashtag_name, start_date, end_date):
     # Parse end date to match database values
     end_date = DateUtils.last_second_of_day(end_date if end_date else start_date)
     document = HashtagUsageDAO().find(hashtag_name, start_date, end_date)
     tweet_id = HashtagDAO().first_known_usage_tweet_id(hashtag_name)
     return HashtagUsageResponseMapper.map_one(document, tweet_id)