class Metric(object): def __init__(self, env_type, start_day, end_day): self.es = Elasticsearch([{'host': env_type['es']}]) self.start_date = start_day self.end_date = end_day def total_user(self): res = self.es.search( index='user', doc_type='user_meta', search_type='count', body={"query": { "term": { "user_name": "Alex Filonenko" } }}) size = res['hits']['total'] return size def total_story(self): res = self.es.search(index='story', doc_type='story_meta', body={ "query": { "range": { "date": { "gte": self.start_date, "lte": self.end_date } } } }) size = res['hits']['total'] return size def total_publisher(self): res = self.es.search(index='user', doc_type='user_meta', body={ "query": { "range": { "date": { "gte": self.start_date, "lte": self.end_date } } } }) size = res['hits']['total'] if size: res = self.es.search(index='user', doc_type='user_meta', size=size) return res['hits']['total'] def priced_story(self): return self.es.get_data('story', 'story_meta') def free_story(self): return self.es.get_data('story', 'story_meta') def price_change(self): return self.es.get_data('story', 'story_meta') def shelf_life(self): return self.es.get_data('story', 'story_meta')