def age_group_chart(request, uid): ig_user = IgUsers.objects.filter(id=uid).first() if not ig_user: return JsonResponse({'status': 404, 'mssg': 'User could not be found'}) ratings = utils.retrieve_follower_ratings_given_ig_user(ig_user) if not ratings: age_group_stats = None else: # age group stats age_group_stats = utils.calculate_age_group_stats(ratings) ig_user_dict = model_to_dict(ig_user) if permissions.is_external_user(request.user): ig_user_dict['username'] = '******' * len(ig_user_dict['username']) ig_user_dict['email'] = '*' * len(ig_user_dict['email']) ig_user_dict['userid'] = '*' * len(ig_user_dict['userid']) # is_auth_user is always set to True for now # this is a patch, and it will be changed back later is_auth_user = True # if not request.user.is_authenticated(): # is_auth_user = False # else: # is_auth_user = True return JsonResponse({ 'is_auth_user': is_auth_user, 'status': 200, 'ig_user': ig_user_dict, 'age_group_stats': age_group_stats, })
def engagement_chart(request, uid): ig_user = IgUsers.objects.filter(id=uid).first() average_engagement = IgUsers.objects.all().aggregate( Avg('engagement'))['engagement__avg'] if not ig_user: return JsonResponse({'status': 404, 'mssg': 'User could not be found'}) # engagement stats engagement_stats = utils.calculate_engagement_stats(ig_user) ig_user_dict = model_to_dict(ig_user) if permissions.is_external_user(request.user): ig_user_dict['username'] = '******' * len(ig_user_dict['username']) ig_user_dict['email'] = '*' * len(ig_user_dict['email']) ig_user_dict['userid'] = '*' * len(ig_user_dict['userid']) # is_auth_user is always set to True for now # this is a patch, and it will be changed back later is_auth_user = True # if not request.user.is_authenticated(): # is_auth_user = False # else: # is_auth_user = True return JsonResponse({ 'is_auth_user': is_auth_user, 'status': 200, 'ig_user': ig_user_dict, 'average_engagement': average_engagement, 'engagement_stats': engagement_stats, })
def trends_chart(request, network, uid): if network == 'ig': user = IgUsers.objects.filter(id=uid).first() elif network == 'tw': user = TwUsers.objects.filter(id=uid).first() if not user: return JsonResponse({'status': 404, 'mssg': 'User could not be found'}) verified_acc = VerifiedUserAccounts.objects.filter(network=network, account_id=uid).first() if verified_acc: niches = verified_acc.niches.all() or None else: if network == 'ig': niches = user.igusertags_set.all() or None elif network == 'tw': niches = user.twuserkeywords_set.all() or None user_dict = model_to_dict(user) if permissions.is_external_user(request.user): user_dict['username'] = '******' * len(user_dict['username']) user_dict['email'] = '*' * len(user_dict['email']) user_dict['userid'] = '*' * len(user_dict['userid']) # trends stats (trends_headers, trends_values) = utils.calculate_interest_over_time( request.user, user, niches, network) # is_auth_user is always set to True for now # this is a patch, and it will be changed back later is_auth_user = True # if not request.user.is_authenticated(): # is_auth_user = False # else: # is_auth_user = True return JsonResponse({ 'is_auth_user': is_auth_user, 'status': 200, 'user': user_dict, 'trends_headers': trends_headers, 'trends_values': trends_values, })