Ejemplo n.º 1
0
def goto_complete_registration(request):
    if request.method == 'POST':
        # after finishing registration
        username = request.COOKIES.get('registration_value_username')
        email = request.COOKIES.get('registration_value_email')
        password = request.COOKIES.get('registration_value_password')

        # photo = request.POST.get('pic')
        # print(photo)
        # storage.child("Pics").put(photo)
        #
        # form = UploadFileForm(request.POST, request.FILES)
        # if form.is_valid():
        #     UserCard.picture = UploadFileForm.cleaned_data['picture']
        #     UserCard.save()
        #     print(UserCard.picture)
        # else:
        #     form= UploadFileForm()

        biography = request.POST.get('biography')
        sexuality = request.POST.get('sexuality')
        gender = request.POST.get('gender')
        birthday = request.POST.get('birthday')
        age = calculate_age(birthday)
        ip_address = get_client_ip_address(request)
        friends_list = [False]
        if age >= 21:
            # upload user to database
            new_user = {
                'email':
                email,
                'username':
                username,
                'biography':
                biography,
                'sexuality':
                sexuality,
                'gender':
                gender,
                'birthday':
                birthday,
                'age':
                age,
                'friends':
                friends_list,
                'ip_address':
                ip_address,
                "Pic":
                "https://firebasestorage.googleapis.com/v0/b/blendr-c1bd5.appspot.com/o/Pics%2F10.jpg?alt=media&token=2850865e-f28f-4809-80c2-779b7c42a0c4"
            }
            db.child("users").child(clean_email(email)).set(new_user)

            # authentication process
            user = auth.create_user_with_email_and_password(email, password)
            auth.send_email_verification(user['idToken'])
            return render(request, 'main/emailVerification.html')
        else:
            print('under aged')
            raise ValueError('You have to be 21 to be on Blendr')
Ejemplo n.º 2
0
def remove_friend(request):
    cleaned_friends_email = clean_email(request.POST.get('like_button'))
    current_user = user_info(request.COOKIES.get('user_id_token'))
    for friend in current_user["friends"]:
        if friend == cleaned_friends_email:
            current_user["friends"].remove(friend)
            current_user_cleaned_email = clean_email(current_user['email'])
            db.child("users").child(current_user_cleaned_email).set(
                current_user)
    return goto_friends_page(request)
Ejemplo n.º 3
0
def update_friends(request):
    cleaned_friends_email = clean_email(request.POST.get('like_button'))
    current_user = user_info(request.COOKIES.get('user_id_token'))
    filter_age_range = request.POST.get('filter_age_range')
    filter_distance_range = request.POST.get('filter_distance_range')

    for friend in current_user["friends"]:
        if friend == cleaned_friends_email:
            return goto_homepage(request, current_user, filter_age_range,
                                 filter_distance_range)
    current_user_cleaned_email = clean_email(current_user['email'])
    if cleaned_friends_email != current_user_cleaned_email:
        current_user["friends"].append(cleaned_friends_email)
        db.child("users").child(current_user_cleaned_email).set(current_user)
    return goto_homepage(request, current_user, filter_age_range,
                         filter_distance_range)
Ejemplo n.º 4
0
def retrieve_database_users_friends_only(current_user_friends):
    user_card_list = []
    results = db.child("users").get()
    for key in results.val():
        email = results.val()[key]["email"]
        if clean_email(email) in current_user_friends:
            username = results.val()[key]["username"]
            bio = results.val()[key]["biography"]
            birthday = results.val()[key]["birthday"]
            gender = results.val()[key]["gender"]
            sexuality = results.val()[key]["sexuality"]
            age = results.val()[key]["age"]
            pic = results.val()[key]["Pic"]
            city = get_city_from_ip_address(results.val()[key]["ip_address"])
            new_user_card = UserCard(username=username,
                                     biography=bio,
                                     birthday=birthday,
                                     gender=gender,
                                     iso=sexuality,
                                     email=email,
                                     age=age,
                                     city=city,
                                     pic=pic)
            user_card_list.append(new_user_card)
    context_dict = {"Users": user_card_list}
    return context_dict
Ejemplo n.º 5
0
def retrieve_database_users(current_user, filter_age_range,
                            filter_distance_range):
    if filter_age_range is None:
        filter_age_range = 50
    if filter_distance_range is None:
        filter_distance_range = 50
    user_card_list = []
    results = db.child("users").get()

    current_user_ip_address = current_user['ip_address']
    current_user_age = current_user['age']
    current_user_sexuality = current_user['sexuality']

    filter_age_range = int(filter_age_range)
    filter_distance_range = int(filter_distance_range)

    for key in results.val():

        other_user_ip_address = results.val()[key]['ip_address']
        other_user_age = results.val()[key]["age"]
        other_user_gender = results.val()[key]["gender"]

        calculated_distance = get_distance_between_ip_addresses(
            current_user_ip_address, other_user_ip_address)

        passed_age_filter = False
        passed_distance_filter = False
        passed_sexuality_filter = False

        if (other_user_age - filter_age_range) <= current_user_age <= (
                other_user_age + filter_age_range):
            passed_age_filter = True

        if calculated_distance <= filter_distance_range:
            passed_distance_filter = True

        if other_user_gender == current_user_sexuality:
            passed_sexuality_filter = True

        if passed_age_filter and passed_distance_filter and passed_sexuality_filter:
            username = results.val()[key]["username"]
            bio = results.val()[key]["biography"]
            birthday = results.val()[key]["birthday"]
            sexuality = results.val()[key]["sexuality"]
            email = results.val()[key]["email"]
            pic = results.val()[key]["Pic"]
            city = get_city_from_ip_address(results.val()[key]["ip_address"])
            new_user_card = UserCard(username=username,
                                     biography=bio,
                                     birthday=birthday,
                                     gender=other_user_gender,
                                     iso=sexuality,
                                     email=email,
                                     age=other_user_age,
                                     city=city,
                                     pic=pic)
            user_card_list.append(new_user_card)

    context_dict = {"Users": user_card_list}
    return context_dict
Ejemplo n.º 6
0
def user_info(user_token):
    account_info = auth.get_account_info(user_token)
    key = clean_email(account_info['users'][0]['email'])
    card_info = db.child("users").get()
    username = card_info.val()[key]['username']
    age = card_info.val()[key]['age']
    biography = card_info.val()[key]['biography']
    sexuality = card_info.val()[key]['sexuality']
    gender = card_info.val()[key]['gender']
    birthday = card_info.val()[key]['birthday']
    email = card_info.val()[key]['email']
    ip_address = card_info.val()[key]['ip_address']
    friends = card_info.val()[key]['friends']
    picture = card_info.val()[key]['Pic']
    info_dict = {
        'username': username,
        "age": age,
        "biography": biography,
        "sexuality": sexuality,
        "gender": gender,
        "birthday": birthday,
        "email": email,
        "ip_address": ip_address,
        "friends": friends,
        "Pic": picture,
    }
    return info_dict
Ejemplo n.º 7
0
def update_profile(request):
    if request.method == 'POST':
        username = request.POST.get('Username')
        biography = request.POST.get('biography')
        gender = request.POST.get('gender')
        sexuality = request.POST.get('sexuality')
        current_user = user_info(request.COOKIES.get('user_id_token'))
        db.child("users").child(clean_email(current_user['email'])).update(
            {"username": username})
        db.child("users").child(clean_email(current_user['email'])).update(
            {"biography": biography})
        db.child("users").child(clean_email(current_user['email'])).update(
            {"gender": gender})
        db.child("users").child(clean_email(current_user['email'])).update(
            {"sexuality": sexuality})
    return goto_edit_profile(request)