Esempio n. 1
0
    def post(self):
        query = User.all()
        query.order('-created_at')
        cursor = self.request.get('cursor')
        if cursor != None:
            query.with_cursor(cursor)

        users = query.fetch(50)

        for user in users:
            user_queries = Query.gql("WHERE user = :1 ORDER BY created_at ASC", user).fetch(1000)
            user_search_strings = []

            for user_query in user_queries:
                if user_query.url != None:
                    parsed_url = urlparse(user_query.url)
                else:
                    parsed_url = urlparse('')
                
                
                params = cgi.parse_qs(parsed_url.query)
                    
                # Right now, we'll use the x (and y) param to signify an organic search.
                if 'x' in params and params['x'] != None:
                    user_search_strings.append(user_query.query_string)

            organic_search_metric = OrganicSearchMetric.gql("WHERE user = :1", user).get()
            if organic_search_metric == None:
                organic_search_metric = OrganicSearchMetric(
                    fb_user_id = user.fb_user_id,
                    user = user,
                    search_count = len(user_search_strings),
                    searches = "||".join(user_search_strings)
                )
            else:    
                organic_search_metric.fb_user_id = user.fb_user_id
                organic_search_metric.user = user
                organic_search_metric.search_count = len(user_search_strings)
                organic_search_metric.searches = "||".join(user_search_strings)

            organic_search_metric.put()

        self.response.out.write(simplejson.dumps({'status': 'ok', 'cursor': str(query.cursor()), 'count': len(users) }))