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) }))