コード例 #1
0
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,
    })
コード例 #2
0
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,
    })
コード例 #3
0
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,
    })