Beispiel #1
0
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')