예제 #1
0
def socket():
    if request.environ.get('wsgi.websocket'):
        ws = request.environ['wsgi.websocket']
        while True:
            try:
                message = json.loads(ws.receive())
            except:
                break
            if message is not None:
                user_token = message["token"]
                print(user_token)
                user_email = database_helper.get_email_by_token(user_token)
                print(user_email)
                for logged_token in logged_user:
                    if user_email == database_helper.get_email_by_token(
                            logged_token):
                        prev_socket = logged_user[logged_token]
                        try:
                            prev_socket.send(
                                json.dumps({"message": "logged in elsewhere"}))
                        except:
                            pass
                logged_user[user_token] = ws

    return None
예제 #2
0
def get_user_data_by_token():
    token = request.headers.get("Authorization")

    if database_helper.get_email_by_token(token):
        email = database_helper.get_email_by_token(token)
        data = database_helper.get_user_data(email)
        return jsonify(success=True, message="User data sent.", data=data)
    else:
        return jsonify(success=False, message="Token does not exist.")
예제 #3
0
def change_password():
    data = request.get_json()
    token = data['token']
    old_password = data['old_password']
    new_password = data['new_password']
    if token != None:
        email = database_helper.get_email_by_token(token)
        email = email[0]
        exists = database_helper.check_user_password(email, old_password)
        if exists == False:
            return jsonify({'success': False, 'message': "Wrong password"})
        password_changed = database_helper.change_password(email, new_password)
        if password_changed and exists:
            return jsonify({
                'success': True,
                'message': "Password succesfully changed"
            })
        else:
            return jsonify({
                'success':
                False,
                'message':
                "Something went wrong changing the password"
            })
    else:
        return jsonify({'success': False, 'message': "You are not signed in."})
def ws_email(ws):
    if request.environ.get('wsgi.websocket'):
        ws = request.environ['wsgi.websocket']
        obj = ws.receive()  # tokens
        email = database_helper.get_email_by_token(obj)
        if email is not None:

            if email in logged_in_users:  #logged in users is the dictionary
                if not logged_in_users[email] == ws:
                    old_user = logged_in_users[email]
                    try:
                        print(old_user)
                        old_user.send("logout")
                    except:
                        print("test")
                    del logged_in_users[email]

            logged_in_users[email] = ws

            while True:
                try:
                    ws.receive()
                except:
                    return ""

        return "asd"
def changePW():
    data = request.get_json()  #have to send in token as json string for now
    oldPW = data['password']
    newPW = data['newPW']

    userToken = request.headers.get(
        'token')  # Got THROUGH request.header() instead

    if (oldPW == newPW):
        return jsonify(success=False, message="dont use same password")
    if not validatePW(newPW):
        return jsonify(success=False, message="use a longer password")

    email = database_helper.get_email_by_token(userToken)
    if email is None:
        return jsonify(success=False, message="Cant find logged in user")

    if database_helper.find_user(email, oldPW):
        if database_helper.change_user_PW(email, newPW):
            return jsonify(success=True, message="successfully changed pw")
        else:
            return jsonify(success=False, message="Couldnt change pw")
    else:
        return jsonify(success=False,
                       message="Password is wrong for that email")
예제 #6
0
def post_message():
    token = request.form['token']
    message = request.form['message']
    toEmail = request.form['email']
    fromEmail = database_helper.get_email_by_token(token)
    toUser = database_helper.get_user_by_email(toEmail)
    #check if fromEmail is signed in
    if (fromEmail):
        if (toUser is None):
            return jsonify(success = False, message = "No such user.")
        else:
            try:
                database_helper.post_message(fromEmail[0], toEmail, message);
                # Update chart
                if (toEmail == fromEmail[0]):
                    print "PM EQUALS............."
                    live_data(fromEmail[0], {"id": "update_chart", "online": -1, "sent": database_helper.get_num_messages_sent(fromEmail[0])[0], "received": database_helper.get_num_messages_received(toEmail)[0]})

                else:
                    print "PM NO EQ............."
                    live_data(fromEmail[0], {"id": "update_chart", "online": -1, "sent": database_helper.get_num_messages_sent(fromEmail[0])[0], "received":-1})
                    live_data(toEmail, {"id": "update_chart", "online":-1, "sent": -1, "received": database_helper.get_num_messages_received(toEmail)[0]})
                return jsonify(success = True, message = "Message posted.")
            # Catching IntegrityError
            except sqlite3.IntegrityError:
                return jsonify(success = False, message = "This message is already posted.")           
    else:
        return jsonify(success = False, message = "You are not logged in.")
예제 #7
0
def api():
    if request.environ.get('wsgi.websocket'):
        ws = request.environ['wsgi.websocket']
        token = ws.receive()
        #print(token)
        aux = database_helper.get_email_by_token(token)
        email = aux[0]
        #print(email)
        if email in socketsTab:
            oldSocket = socketsTab[email]
            try:
                oldSocket.send("sign_out")
            except:
                print("Failed sending sign_out")
            del socketsTab[email]

        socketsTab[email] = ws
        print(socketsTab)

        while True:
            try:
                token = ws.receive()
            except:
                return "Connection socket failed"

    return "End if api"
예제 #8
0
def api():
    if request.environ.get("wsgi.websocket"):
        ws = request.environ["wsgi.websocket"]
        token = ws.receive()
        email = str(database_helper.get_email_by_token(token))
        if email in active_sockets:
            try:
                active_sockets[email].send(json.dumps("logout"))
                print("Active Websocket deleted: " + email)
            except:
                print("Active Websocket deleted (due to reload): " + email)
            del active_sockets[email]
            active_sockets[email] = ws
            print("New Active Websocket added: " + email)
        else:
            active_sockets[email] = ws
            print("New Active Websocket added: " + email)
        try:
            while True:
                message = ws.receive()
                if message == "close":
                    database_helper.remove_loggedIn(token)
                    break
        except WebSocketError as e:
            print("Client Disconnected Websocket")
    return ""
예제 #9
0
def change_password():
    data = request.get_json()
    token = data['token']
    old_password = data['old_password']
    new_password = data['new_password']
    if token != None and old_password != new_password and old_password != None and len(
            new_password) >= 5:
        email = database_helper.get_email_by_token(token)
        email = email[0]
        exists = database_helper.check_user_password(email, old_password)
        password_changed = database_helper.change_password(email, new_password)
        if password_changed and exists:
            return jsonify({
                'success': True,
                'message': "Password succesfully changed"
            })
        else:
            return jsonify({
                'success':
                False,
                'message':
                "Something went wrong changing the password"
            })
    else:
        return jsonify({
            'success':
            False,
            'message':
            "Make sure that all fields are filled and new password has at least 5 letters"
        })
예제 #10
0
def change_password():
    token = request.json['token']
    oldpassword = request.json['oldpassword']
    newpassword = request.json['newpassword']

    try:
        email = database_helper.get_email_by_token(token)
    except:
        return json.dumps({
            'success': False,
            'message': "Token does not exist",
            'data': ""
        })

    user = database_helper.get_user(email)
    if user[0]['password'] == oldpassword:
        result = database_helper.change_password(email, newpassword)
        if result:
            return json.dumps({
                'success': result,
                'message': "Password successfully changed",
                'data': ""
            })
        else:
            return json.dumps({
                'success': result,
                'message': "Password change failed",
                'data': ""
            })
    else:
        return json.dumps({
            'success': False,
            'message': "Old passwords do not match",
            'data': ""
        })
예제 #11
0
파일: server.py 프로젝트: mintos002/LAB4
def get_email_token():
    token = request.form['token']
    email = database_helper.get_email_by_token(token)
    if (email):
        return jsonify(success = True, message = "There is your email.", data = email[0])
    else:
        return jsonify(success = False, message = "You are not logged in.")
예제 #12
0
def post_message():
    token = request.headers.get('token')
    receiverEmail = request.headers.get('email')
    content = request.headers.get('content')

    # Convert encoded message to unicode
    def unescape(encodedText):
        encodedText = urllib.unquote(encodedText)
        encodedText = re.sub(r'%u([a-fA-F0-9]{4}|[a-fA-F0-9]{2})',
                             lambda m: unichr(int(m.group(1), 16)),
                             encodedText)
        return encodedText

    content = unescape(content)

    if len(content) > 1000:
        return json.dumps({
            'success': False,
            'message': "Form data missing or incorrect type."
        })

    authorEmail = db.get_email_by_token(token)

    # Add message and notify users
    new_message = db.add_user_message(receiverEmail, authorEmail, content)
    print u"{}> {}: {}".format(new_message["owner"], new_message["author"],
                               new_message["content"])
    sockets.notify_message(new_message)

    return json.dumps({'success': True, 'message': "Message posted"})
예제 #13
0
def post_message():
    token = request.json['token']
    toemail = request.json['email']
    message = request.json['message']

    if toemail == "":
        toemail = database_helper.get_email_by_token(token)

    user = database_helper.get_user(toemail)
    if len(user) == 0:
        return json.dumps({
            'success': False,
            'message': "Recipient does not exist (postmessage)",
            'data': ""
        })

    try:
        fromemail = database_helper.get_email_by_token(token)
    except:
        return json.dumps({
            'success': False,
            'message': "Token does not exist",
            'data': ""
        })

    result = database_helper.store_message(toemail, fromemail, message)
    if result:
        try:
            ws_dic[toemail].send(
                str(len(ws_dic.keys())) + ":" +
                str(database_helper.number_of_messages(toemail)) + ":" +
                str(database_helper.registered_users()))
        except:
            pass

        return json.dumps({
            'success': result,
            'message': "You succesfully posted a message",
            'data': message
        })
    else:
        return json.dumps({
            'success': result,
            'message': "Your message was not posted",
            'data': ""
        })
예제 #14
0
파일: server.py 프로젝트: MatildaD/TDDD97
def get_user_messages_by_token():
    token = request.json['token']
    try:
        email = database_helper.get_email_by_token(token)
    except:
        return json.dumps({'success':False, 'message':"Token does not exist", 'data':""})

    messages = database_helper.get_messages(email)
    return json.dumps({'success':True, 'message':"", 'data':messages})
예제 #15
0
 def wrap(*args, **kwargs):
     token = request.headers.get('token')
     if token and db.get_email_by_token(token):
         return json.dumps({
             'success': False,
             'message': "You are already signed in."
         })
     else:
         return f(*args, **kwargs)
예제 #16
0
파일: server.py 프로젝트: ksyang1023/TDDD97
def get_user_messages_by_email():
    token = request.json['token']
    email = database_helper.get_email_by_token(token)
    response = {}
    if email is None:
        response['success'] = False
        response['message'] = 'You are not signed in.'  
    else:
        response = get_message_with_email(request.json['email'])
    return json.dumps(response)
예제 #17
0
파일: server.py 프로젝트: ksyang1023/TDDD97
def get_user_data_by_token():
    token = request.json['token']
    response = {}
    email = database_helper.get_email_by_token(token)
    if email is None:
        response['success'] = False
        response['message'] = 'You are not signed in.'  
    else:
        response = get_info_with_email(email, 'own')
    return json.dumps(response)
예제 #18
0
파일: server.py 프로젝트: ekholm81/web_app
def post_message():
	email=request.args.get("email")
	token=request.args.get("token")
	mess =request.args.get("message")
	if request.method == 'POST':
		if dh.is_user_logged_in_token(token)==False:
			return json.dumps([{'success': False, 'message': "Not signed in"}])
		if dh.is_user(email)==False:
			return json.dumps([{'success': False, 'message': "Illegal recipient"}])
		return json.dumps([{'success': dh.post_msg(dh.get_email_by_token(token),email,mess),'message':"message sent"}])
예제 #19
0
파일: server.py 프로젝트: mintos002/LAB4
def sign_out():
    # Check if the user is siggned in
    token = request.form['token']
    email = database_helper.get_email_by_token(token)
    # If it is:
    if(email is not None):
        database_helper.delete_logged_in_by_token(token)
        return jsonify(success = True, message = "Successfully signed out.")
    else:
        return jsonify(success = False, message = "You are not logged in.")
예제 #20
0
def get_user_messages_by_token():
    token = request.headers.get('token')

    email = db.get_email_by_token(token)
    messages = db.get_user_messages(email)
    return json.dumps({
        'success': True,
        'message': "User messages retrieved.",
        'data': messages
    })
예제 #21
0
파일: server.py 프로젝트: ekholm81/web_app
def change_password():
	email=dh.get_email_by_token(request.args.get("token"))
	old=request.args.get("old_password")
	new=request.args.get("new_password")
	if request.method == 'POST':
		if dh.is_user_logged_in_email(email)==True:
			if dh.get_password(email)==old:
				dh.update_pass(email,new)
				return json.dumps([{'success': True, 'message': "Password changed"}])
			return json.dumps([{'success': False, 'message': "Wrong password"}])
		return json.dumps([{'success': False, 'message': "User not signed in"}])
예제 #22
0
def echo_socket(ws):
    token = ws.receive()
    email = dh.get_email_by_token(token)

    if email in opensockets:
        opensockets[email].append(ws)
    else:
        opensockets[email] = [ws]

    while not ws.closed:
        ws.receive()
예제 #23
0
파일: server.py 프로젝트: Ghura/TDDD97_Lab4
def get_user_messages_by_token():
    token = request.headers.get("Authorization")

    if database_helper.check_token(token):
        email = database_helper.get_email_by_token(token)
        if database_helper.get_user_messages(email):
            messages = database_helper.get_user_messages(email)
            return jsonify(success=True, message="Messages recieved!", data=messages)
        else:
            return jsonify(success=False, message="User has no messages yet.")
    else:
        return jsonify(success=False, message="Not logged in.")
def messagebytoken():
    userToken = request.headers.get(
        'token')  # Got THROUGH request.header() instead
    email = database_helper.get_email_by_token(userToken)

    if email is None:
        return jsonify(success=False,
                       message="Cant find email with that token")
    else:
        email = email[0]
        result = database_helper.message_by_email(email)
        return jsonify(result)
예제 #25
0
def get_user_messages_by_token():
    input_data = request.get_json()
    token = input_data['token']
    email = database_helper.get_email_by_token(token)
    if email is not None:
        messages = database_helper.get_messages_by_email(email)
        # if messages is not None:
        return json.dumps({"success": True, "message": "User messages retrieved.", "data": messages})
        # else:
        #     return json.dumps({"success": False, "message": "No message."})
    else:
        return json.dumps({"success": False, "message": "You are not signed in."})
예제 #26
0
def api():
    if request.environ.get('wsgi.websocket'):
        ws = request.environ['wsgi.websocket']
        while True:
            msg = ws.receive()

            if database_helper.check_token(msg):
                email = database_helper.get_email_by_token(msg)
                webSockets[email] = ws
            else:
                ws.close()
    return "OK"
예제 #27
0
def sign_out():
    # Check if the user is siggned in
    token = request.form['token']
    email = database_helper.get_email_by_token(token)
    # If it is:
    if(email is not None):
        database_helper.delete_logged_in_by_token(token)
        #Update chart
        live_data(None, {"id": "update_chart", "online": database_helper.get_num_users_online()[0], "sent": -1, "received": -1});
        return jsonify(success = True, message = "Successfully signed out.")
    else:
        return jsonify(success = False, message = "You are not logged in.")
예제 #28
0
def get_user_data_by_token():
    input_data = request.get_json()
    token = input_data['token']
    email = database_helper.get_email_by_token(token)
    if email:
        user_data = database_helper.get_user_by_email(email)
        if user_data:
            return json.dumps({"success": True, "message": "User data retrieved.", "data": user_data})
        else:
            return json.dumps({"success": False, "message": "No such user."})
    else:
        return json.dumps({"success": False, "message": "You are not signed in."})
예제 #29
0
def echo_socket():
    ws = request.environ['wsgi.websocket']
    g.db = sqlite3.connect(DATABASE)

    print "ws", ws
    while True:
        print "ws: ", ws
        token = ws.receive()
        print "token:", token
        email = database_helper.get_email_by_token(token)
        print "email:", email
        socket_connections[email[0]] = ws
예제 #30
0
파일: server.py 프로젝트: mintos002/LAB4
def get_user_messages_by_token():
    token = request.form['token']
    email = database_helper.get_email_by_token(token)
    # Check if the user is loggedin
    if (email is None):
        return jsonify(success = False, message = "You are not logged in.")
    else:
        user = database_helper.get_user_by_email(email[0])
        if (user is None):
            return jsonify(success = False, message = "No such user.")
        else:
            messages = database_helper.get_messages_by_email(email[0])
            return jsonify(success = True, message = "User messages retrieved.", data = messages)
예제 #31
0
def sign_out():
    token = request.headers.get("Authorization")

    email = database_helper.get_email_by_token(token)

    if email in webSockets:
        del webSockets[email]

    if email and database_helper.remove_token_user(token):
        return jsonify(success=True, message="Logged out!")
    else:
        return jsonify(success=False,
                       message="Token does not exist/Already signed out?")
예제 #32
0
def change_password():
    input_data = request.get_json()
    token = input_data['token']
    email = database_helper.get_email_by_token(token)
    if email:
        # user logged in
        user_data = database_helper.get_user_by_email(email)
        if input_data['oldPassword'] == user_data['password']:
            database_helper.change_password(email, input_data['newPassword'])
            return json.dumps({"success": True, "message": "Password changed."})
        else:
            return json.dumps({"success": False, "message": "Wrong password."})
    else:
        return json.dumps({"success": False, "message": "You are not logged in."})
예제 #33
0
파일: server.py 프로젝트: MatildaD/TDDD97
def get_user_messages_by_email():
    token = request.json['token']
    toemail = request.json['email']
    try:
        fromemail = database_helper.get_email_by_token(token)
    except:
        return json.dumps({'success':False, 'message':"Token does not exist", 'data':""})

    user = database_helper.get_user(toemail)
    if len(user) == 0:
        return json.dumps({'success':False, 'message':"Recipient does not exist", 'data':""})

    messages = database_helper.get_messages(toemail)
    return json.dumps({'success':True, 'message':"", 'data':messages})
예제 #34
0
파일: server.py 프로젝트: Ghura/TDDD97_Lab4
def api():
    if request.environ.get('wsgi.websocket'):
        ws = request.environ['wsgi.websocket']
        while True:
            msg = ws.receive()
            message = json.loads(msg)

            if message["id"] == "token":
                if database_helper.check_token(message["token"]):
                    email = database_helper.get_email_by_token(message["token"])
                    webSockets[email] = ws
                else:
                    ws.close()
            elif message["id"] == "chartUpdate":
                if database_helper.check_token(message["token"]):
                    email = database_helper.get_email_by_token(message["token"])
                    chartsUpdate(email)
                else:
                    ws.close()
            else:
                ws.close()

    return "OK"
예제 #35
0
파일: server.py 프로젝트: MatildaD/TDDD97
def get_user_data_by_token():
    token = request.json['token']
    try:
        email = database_helper.get_email_by_token(token)
    except:
        return json.dumps({'success':False, 'message':"Token does not exist", 'data':""})

    user = database_helper.get_user(email)
    if len(user) != 0:

        user = user[0]
        del user['password']
        return json.dumps({'success':True, 'message':"", 'data':user})
    else:
        return json.dumps({'success':False, 'message':"User does not exist", 'data':""})
예제 #36
0
def change_password():
    token = request.headers.get('token')
    old_password = request.headers.get('oldPassword')
    new_password = request.headers.get('newPassword')

    email = db.get_email_by_token(token)
    user = db.get_user(email)

    # Compare encrypted password
    if not sha256_crypt.verify(str(old_password), user['password']):
        return json.dumps({'success': False, 'message': "Wrong password."})

    encrypted_password = sha256_crypt.encrypt(unicode(new_password))
    db.set_password(email, encrypted_password)
    return json.dumps({'success': True, 'message': "Password changed."})
예제 #37
0
def socket():
    ws = request.environ.get('wsgi.websocket')
    if not ws:
        print "! WebSocket failed to initialize"
        return "WebSocket failed to initialize"

    token, email = None, None

    try:
        # Await client confirmation
        data = ws.receive()
        try:
            message = json.loads(data)
            token = message['token']
            email = message['email']
        except:
            raise WebSocketError("WebSocket data missing or incorrect type")

        if not db.get_email_by_token(token):
            ws.send(
                json.dumps({
                    'success': False,
                    'message': "You are not signed in."
                }))
            raise WebSocketError("User is not signed in")

        # Save connection
        sockets.add(token, email, ws)
        print "+ Connected with:", email, '({})'.format(request.remote_addr)

        sockets.success(token, "Connection established.")
        sockets.update_online_status()

        # Await client closing connection
        while True:
            data = ws.receive()
            if data == None:
                sockets.remove(token)
                break

    except WebSocketError as error:
        print "! WebSocketError:", error
    finally:
        print "- Disconnected from:", email
        ws.close()
        sockets.update_online_status()

    return ''
예제 #38
0
파일: server.py 프로젝트: ymtech2004/TDDD97
def sign_out():
    
    token = request.json['token']
    response = {}
    email = database_helper.get_email_by_token(token)
    if email is not None:
        response['success'] = True
        response['message'] = 'Successfully signed out.'
        database_helper.delete_token(token)
        if email in connected_users:
            connected_users[email].close()
            connected_users.pop(email, None)
        send_live_data()
    else:   
        response['success'] = False
        response['message'] = 'You are not signed in.'
    return json.dumps(response) 
예제 #39
0
파일: server.py 프로젝트: mintos002/LAB4
def change_password():
    token = request.form['token']
    old_password = request.form['oldpassword']
    new_password = request.form['newpassword']
    email = database_helper.get_email_by_token(token)
    # Check if the user exists:
    
    if (email is not None):
        password = database_helper.get_password(email[0])
        # Check if the passwords match
        if (password[0] == old_password):
            database_helper.set_password(email[0], new_password)
            return jsonify(success = True, message = "Password changed.")
        else:
            return jsonify(success = False, message = "Wrong password.")
    else:
        return jsonify(success = False, message = "You are not logged in.")
예제 #40
0
파일: server.py 프로젝트: mintos002/LAB4
def get_stats():
    token = request.form['token']
    # Get the data from db
    email = database_helper.get_email_by_token(token)
    if email:
        print email;
        # get user statistics
        sent_ = database_helper.get_num_messages_sent(email[0])
        received_ = database_helper.get_num_messages_received(email[0])
        online_ = database_helper.get_num_users_online()
        u={}
        u["sent"] = sent_[0]
        u["received"] = received_[0]
        u["online"] = online_[0]
        
        return jsonify(success = True, message = "This is the data for chart.", data = u)
    else:
        return jsonify(success = False, message = "You are not logged in.")
예제 #41
0
파일: server.py 프로젝트: mintos002/LAB4
def post_message():
    token = request.form['token']
    message = request.form['message']
    toEmail = request.form['email']
    fromEmail = database_helper.get_email_by_token(token)
    toUser = database_helper.get_user_by_email(toEmail)
    #check if fromEmail is signed in
    if (fromEmail):
        if (toUser is None):
            return jsonify(success = False, message = "No such user.")
        else:
            try:
                database_helper.post_message(fromEmail[0], toEmail, message);
                return jsonify(success = True, message = "Message posted.")
            # Catching IntegrityError
            except sqlite3.IntegrityError:
                return jsonify(success = False, message = "This message is already posted.")           
    else:
        return jsonify(success = False, message = "You are not logged in.")
예제 #42
0
파일: server.py 프로젝트: mintos002/LAB4
def get_user_data_by_token():
    token = request.form['token']
    #Check if there is such a user
    email = database_helper.get_email_by_token(token)

    if (email is not None):
        user = database_helper.get_user_by_email(email[0])
        if (user is None):
            return jsonify(success = False, message = "No such user.")
        else:
            u = {}
            u['email'] = user[0]
            u['firstname'] = user[1]
            u['familyname'] = user[2]
            u['gender'] = user[3]
            u['city'] = user[4]
            u['country'] = user[5]
            return jsonify(success = True, message = "User data retrieved.", data = u)
    else:
        return jsonify(success = False, message = "You are not logged in.")
예제 #43
0
파일: server.py 프로젝트: ymtech2004/TDDD97
def change_password():
    data = request.json
    token = data['token']
    old_password = data['old_password'] 
    new_password = data['new_password']
    email = database_helper.get_email_by_token(token)
    response = {}
    if email is  None:
        response['success'] = False
        response['message'] = 'You are not signed in.'
    else:
        if database_helper.check_user(email, old_password):
            salt = str(binascii.hexlify(os.urandom(16)))
            hnew_password = str(binascii.hexlify(hashlib.pbkdf2_hmac('sha256', str(new_password), salt, 100000)))
            database_helper.update_password(email, hnew_password, salt)
            response['success'] = True
            response['message'] = 'Password changed.'
        else:
            response['success'] = False
            response['message'] = 'Wrong password.'
    return json.dumps(response)     
예제 #44
0
파일: server.py 프로젝트: ymtech2004/TDDD97
def post_message():
    response = {}
    data = request.json
    email = database_helper.get_email_by_token(data['token'])
    if email is None:
        response['success'] = False
        response['message'] = 'You are not signed in.'  
    else:
        message = data['message']
        target_email = data['email']
        if target_email == 'own':
            target_email = email
        if database_helper.check_user(target_email,'','exist'):
            database_helper.post_message(email, target_email,message)
            response['success'] = True
            response['message'] = 'Message posted'
            send_live_data()      
        else:
            response['success'] = False
            response['message'] = 'No such user.'   
        
    return json.dumps(response) 
예제 #45
0
파일: server.py 프로젝트: mintos002/LAB4
def websocket():
    print "INTO WEBSOCKET"
    if request.environ.get('wsgi.websocket'):
        ws = request.environ['wsgi.websocket']
        while True:
            try:
                msg = ws.receive()
                message = json.loads(msg)

                # To start ws
                if message["id"] == "start":
                    print "WS Start"

                # To kick the user from the previous session
                if message["id"] == "email":		
                    print "MESSAGE IS EMAIL"		
                    if message["email"] in socket_list:
                        socket_list[message["email"]].send(json.dumps(dict(id = "sign_out")))	
                        print ""+json.dumps(dict(id = "sign_out"))		
                    socket_list[message["email"]] = ws
                
                # To update the chart
                elif message["id"] == "update_chart":
                    token = message["token"]
                    email = database_helper.get_email_by_token(token)
                    print email;
				    # get user statistics
                    sent_ = database_helper.get_num_messages_sent(email[0])
                    received_ = database_helper.get_num_messages_received(email[0])
                    online_ = database_helper.get_num_users_online()

                    ws.send(json.dumps(dict(id = "update_chart", sent = sent_[0], received = received_[0], online = online_[0])))
            
            except WebSocketError as e:
                print(str(e))

    return
예제 #46
0
파일: server.py 프로젝트: ekholm81/web_app
def get_user_messages_by_token():
	token=request.args.get("token")
	if request.method == 'GET':
		if dh.is_user(dh.get_email_by_token(token))==False:
			return json.dumps([{'success': False, 'message': "No such user"}])
		return json.dumps([{'success': True, 'message': "Success",'data':dh.messages_by_token(token)}])