コード例 #1
0
ファイル: auth.py プロジェクト: lramela/Matcha_
def confirm():
    errors = []
    if request.method == 'GET':
        user_id = ObjectId(request.args.get('jrr'))

        user = db.get_user({'_id': user_id})

        if user:
            db.update_likes(user_id, {'email_confirmed': 1})
            flash('Email confirmed', 'success')
            return redirect(url_for('auth.login'))
        else:
            errors.append("Incorrect username or password")
            for error in errors:
                flash(error, 'danger')

    return redirect(url_for('auth.login'))
コード例 #2
0
ファイル: sockets.py プロジェクト: lramela/Matcha_
def unlike(data):

    print(f"Unlike {data}")

    current_user = db.get_user(
        {"username": session.get("username")}, {"likes": 1, "matched": 1}
    )

    unlikes = db.get_user(
        {"username": data["to"]}, {"liked": 1, "matched": 1, "notifications": 1}
    )
    if data["to"] in current_user["likes"]:
        current_user["likes"].remove(data["to"])
        unlikes["liked"].remove(session.get("username"))
    if current_user["matched"] and data["to"] in current_user["matched"]:
        current_user["matched"].remove(data["to"])
        unlikes["matched"].remove(session.get("username"))

    db.update_likes(
        current_user["_id"],
        {"likes": current_user["likes"], "matched": current_user["matched"]},
    )
    db.update_likes(
        unlikes["_id"], {"liked": unlikes["liked"], "matched": unlikes["matched"]}
    )

    # sid = logged_in_users[data["to"]]
    # if sid:
    #     socket.emit("Unlike", {"from": session.get("username")}, room=sid)

    unlikes["notifications"].append(session.get("username") + " has unliked you.")
    db.update_likes(unlikes["_id"], {"notifications": unlikes["notifications"]})
コード例 #3
0
ファイル: sockets.py プロジェクト: lramela/Matcha_
def send(data):
    print(f"Sending message")
    users = db.users()
    current_user = db.get_user({"username": session.get("username")}, {"_id": 1})
    notification = None

    for user in users:
        if data["room"] in user["rooms"].values() and not user[
            "username"
        ] == session.get("username"):
            notification = user
            break

    if current_user["_id"] in user["blocked"]:
        return False

    db.insert_chat(data["from"], data["room"], data["message"])
    socket.emit(
        "recieve",
        {"from": data["from"], "message": data["message"]},
        include_self=False,
        room=data["room"],
    )
    if not notification["username"] in logged_in_users:
        # send email
        notification["notifications"].append(
            session.get("username") + " has sent you a message"
        )
        db.update_likes(
            notification["_id"], {"notifications": notification["notifications"]}
        )
    else:
        notification["notifications"].append(
            session.get("username") + " has sent you a message"
        )
        db.update_likes(
            notification["_id"], {"notifications": notification["notifications"]}
        )
コード例 #4
0
ファイル: sockets.py プロジェクト: lramela/Matcha_
def view_user_profile(data):
    print("recieving the data")
    viewed_user = db.get_user({"_id": ObjectId(data["viewed"])})
    viewer = db.get_user({"_id": ObjectId(data["viewer"])}, {"username": 1})
    if (
        data["viewer"] in viewed_user["views"]
        or viewer["_id"] in viewed_user["blocked"]
    ):
        return False
    if viewed_user["username"] in logged_in_users:
        socket.emit(
            "notif_view",
            {"from": viewer["username"]},
            sid=logged_in_users[viewed_user["username"]],
        )
    if viewed_user['username'] != viewer['username']:
        viewed_user["notifications"].append(viewer["username"] + " has viewed you profile")
        viewed_user["views"].append(data["viewer"])
        db.update_likes(
            viewed_user["_id"],
            {"views": viewed_user["views"], "notifications": viewed_user["notifications"]},
        )
    print("Debug: views", data)
コード例 #5
0
ファイル: sockets.py プロジェクト: lramela/Matcha_
def liked_back(data):

    print(f"Debug")
    like_back = db.get_user(
        {"username": session.get("username")},
        {"username": 1, "likes": 1, "matched": 1, "rooms": 1},
    )

    liked = db.get_user(
        {"username": data["to"]},
        {"username": 1, "liked": 1, "matched": 1, "rooms": 1, "notifications": 1},
    )

    room = secrets.token_hex(16)


    like_back["likes"].append(liked["username"])
    liked["liked"].append(like_back["username"])
    # add to the matched array.
    like_back["matched"].append(liked["username"])
    liked["matched"].append(like_back["username"])
    # add a unique room to this twos matched
    like_back["rooms"][liked["username"]] = room
    liked["rooms"][like_back["username"]] = room
    db.update_likes(
        like_back["_id"],
        {
            "likes": like_back["likes"],
            "matched": like_back["matched"],
            "rooms": like_back["rooms"],
        },
    )
    db.update_likes(
        liked["_id"],
        {
            "liked": liked["liked"],
            "matched": liked["matched"],
            "rooms": liked["rooms"],
        },
    )

    sid = logged_in_users.get(data["to"])
    if sid:
        socket.emit("matched", {"from": session.get("username")}, room=sid)
    liked["notifications"].append(
        session.get("username") + " has liked back. You can now chat"
    )
    db.update_likes(liked["_id"], {"notifications": liked["notifications"]})
    print(data)
コード例 #6
0
ファイル: sockets.py プロジェクト: lramela/Matcha_
def like(data):
    liker = db.get_user(
        {"username": session.get("username")}, {"username": 1, "likes": 1}
    )
    liked = db.get_user(
        {"username": data["to"]}, {"username": 1, "likes": 1, "liked": 1, "notifications": 1}
    )
    liker["likes"].append(liked["username"])
    liked["liked"].append(liker["username"])

    db.update_likes(liker["_id"], {"likes": liker["likes"]})
    db.update_likes(liked["_id"], {"liked": liked["liked"]})
    calculate_popularity(liked)
    # sid = logged_in_users.get(data["to"])
    # if sid:
    #     socket.emit("flirt", {"from": session.get("username")}, room=sid)
    liked["notifications"].append(session.get("username") + " liked you")
    db.update_likes(liked["_id"], {"notifications": liked["notifications"]})
コード例 #7
0
ファイル: sockets.py プロジェクト: lramela/Matcha_
def read(data):
    print("notifications read")
    user = db.get_user({"username": session.get("username")}, {"notifications": 1})
    user["notifications"] = []
    db.update_likes(user["_id"], {"notifications": user["notifications"]})