def post(self): query = InstallMetric.all() query.order('-installed_at') cursor = self.request.get('cursor') if cursor != None: query.with_cursor(cursor) install_metrics = query.fetch(25) for install_metric in install_metrics: post_install_activity_metric = PostInstallActivityMetric.gql("WHERE user = :1", install_metric.user).get() if post_install_activity_metric == None: post_install_activity_metric = PostInstallActivityMetric( fb_user_id = install_metric.user.fb_user_id, user = install_metric.user, installed_at = install_metric.installed_at ) else: post_install_activity_metric.fb_user_id = install_metric.user.fb_user_id post_install_activity_metric.user = install_metric.user post_install_activity_metric.installed_at = install_metric.installed_at for day in [1,2,3,4,5,6,7]: day_start = install_metric.installed_at + datetime.timedelta(days=day) day_end = install_metric.installed_at + datetime.timedelta(days=(day+1)) page_view_in_day = PageView.gql( "WHERE user = :1 AND created_at >= :2 AND created_at < :3", install_metric.user, day_start, day_end).get() if page_view_in_day != None: setattr(post_install_activity_metric, "active_day_%s" % day, True) post_install_activity_metric.put() self.response.out.write(simplejson.dumps({'status': 'ok', 'cursor': str(query.cursor()), 'count': len(install_metrics) }))
def post(self): span_in_days = int(self.request.get('span_in_days')) query = InstallMetric.all() query.order('-installed_at') cursor = self.request.get('cursor') if cursor != None: query.with_cursor(cursor) install_metrics = query.fetch(25) # There's one kvaluemetric per day, so find all `span_in_days` of them for install_metric in install_metrics: for kvalue_day in range(0, span_in_days): date = (install_metric.installed_at + datetime.timedelta(days=kvalue_day)).date() k_value_metric = KValueMetric.gql("WHERE date = :1 AND span_in_days = :2", date, span_in_days).get() if k_value_metric == None: k_value_metric = KValueMetric(span_in_days = span_in_days, date = date) if install_metric.installed_via_newsfeed == True: if k_value_metric.viral_signups == None: k_value_metric.viral_signups = 0 k_value_metric.viral_signups += 1 if k_value_metric.total_signups == None: k_value_metric.total_signups = 0 k_value_metric.total_signups +=1 k_value_metric.put() self.response.out.write(simplejson.dumps({'status': 'ok', 'cursor': str(query.cursor()), 'count': len(install_metrics) }))
def post(self): query = InstallMetric.all() query.order('-updated_at') cursor = self.request.get('cursor') if cursor != None: query.with_cursor(cursor) install_metrics = query.fetch(1000) total_users = 0 total_from_ads = 0 total_from_newsfeeds = 0 total_from_unknown = 0 for install_metric in install_metrics: total_users += 1 if install_metric.installed_via_ad == True: total_from_ads += 1 elif install_metric.installed_via_newsfeed == True: total_from_newsfeeds += 1 elif install_metric.installed_via_unknown == True: total_from_unknown += 1 self.response.out.write(simplejson.dumps({'status': 'ok', 'cursor': str(query.cursor()), 'total_users': total_users, 'total_from_ads': total_from_ads, 'total_from_newsfeeds': total_from_newsfeeds, 'total_from_unknown': total_from_unknown, 'count': len(install_metrics) }))