def text_handler(data): print(str(data)) sender_str = str(data['sender']) receiver_str = str(data['receiver']) message_str = str(data['message_content']) sender_id = query_db('select id from users where user_name = ?', [sender_str], one=True)['id'] receiver_id = query_db('select id from users where user_name = ?', [receiver_str], one=True)['id'] insert_db( 'insert into message (sender_user_id, receiver_user_id, message_content) values (?, ?, ?)', [sender_id, receiver_id, message_str]) emit('message', data, room=data['sender']) emit('message', data, room=data['receiver'])
def chat_history(withUser): userId = current_user.id query = """select senders.user_name as sender, receivers.user_name as receiver, m.message_content, m.timestamp from message m, users senders, users receivers where m.sender_user_id = senders.id and m.receiver_user_id = receivers.id and ((sender_user_id = ? and receivers.user_name = ?) or (senders.user_name = ? and receiver_user_id = ?)) order by timestamp ASC""" messages = query_db(query, [userId, withUser, withUser, userId]) return jsonify(messages=messages)
def login(): if request.method == 'POST': username = request.form['username'] retuser = query_db('select * from users where user_name = ?', [username], one=True) if retuser is not None: login_user(User(username, retuser['id'])) flash('You were successfully logged in!') return redirect(url_for('user_home')) else: flash('Invalid username!') return render_template('signin.html')
def register(): if request.method == 'POST': username = request.form['username'] retUser = query_db('select * from users where user_name = ?', [username], one=True) if retUser is None: insert_db('insert into users (user_name) values(?)', [username]) flash('You were successfully registered!') return render_template('signin.html') else: flash('That username is already taken!') return render_template('register.html')
def load_user(user_id): retuser = query_db('select * from users where id = ?', [int(user_id)], one=True) if retuser is not None: return User(retuser['user_name'], retuser['id']) return None
def user_home(): users = query_db('select * from users where user_name != ?', [current_user.user_name]) return render_template('user-home.html', users=users)