Created new chat table in scheme.sql, Added chat.py with 3 methods (incomplete)
This commit is contained in:
@@ -36,13 +36,13 @@ def signup():
|
|||||||
cursor.execute("""INSERT INTO users (username, password, email, num_followers, isPartenered, bio)
|
cursor.execute("""INSERT INTO users (username, password, email, num_followers, isPartenered, bio)
|
||||||
VALUES (?, ?, ?, ?, ?, ?);""", (username, generate_password_hash(password), email, 0, 0, "This user does not have a Bio."))
|
VALUES (?, ?, ?, ?, ?, ?);""", (username, generate_password_hash(password), email, 0, 0, "This user does not have a Bio."))
|
||||||
db.commit_data()
|
db.commit_data()
|
||||||
return redirect(url_for("auth.login"))
|
return {"account_created": True}
|
||||||
|
|
||||||
|
|
||||||
# Close connection to prevent data leaks
|
# Close connection to prevent data leaks
|
||||||
db.close_connection()
|
db.close_connection()
|
||||||
|
|
||||||
return render_template("signup.html", form=form)
|
return {"account_created": False}
|
||||||
|
|
||||||
@auth_bp.route("/login", methods=["GET", "POST"])
|
@auth_bp.route("/login", methods=["GET", "POST"])
|
||||||
def login():
|
def login():
|
||||||
@@ -81,12 +81,12 @@ def login():
|
|||||||
if not next_page:
|
if not next_page:
|
||||||
next_page = url_for("app.index")
|
next_page = url_for("app.index")
|
||||||
db.close_connection()
|
db.close_connection()
|
||||||
return redirect(next_page)
|
return {"logged_in": True}
|
||||||
|
|
||||||
return render_template("login.html", form=form)
|
return {"logged_in": False}
|
||||||
|
|
||||||
@auth_bp.route("/logout")
|
@auth_bp.route("/logout")
|
||||||
@login_required
|
@login_required
|
||||||
def logout():
|
def logout():
|
||||||
session.clear()
|
session.clear()
|
||||||
return redirect(url_for("index"))
|
return {"logged_in": False}
|
||||||
48
web_server/blueprints/chat.py
Normal file
48
web_server/blueprints/chat.py
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
from flask import Blueprint
|
||||||
|
from blueprints.utils import login_required
|
||||||
|
from database.database import Database
|
||||||
|
|
||||||
|
chat_bp = Blueprint("chat", __name__)
|
||||||
|
|
||||||
|
@login_required
|
||||||
|
def chat():
|
||||||
|
"""
|
||||||
|
Works with react, takes the chat entered by a logged in user and stores in database
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
return {}
|
||||||
|
|
||||||
|
|
||||||
|
def get_all_chat():
|
||||||
|
"""
|
||||||
|
Returns a dictionary to be passed to the server.
|
||||||
|
|
||||||
|
Output structure in the following format: `{(chatter, message), ...}` for all chats.
|
||||||
|
|
||||||
|
Rans once when a user first logs into a stream
|
||||||
|
"""
|
||||||
|
|
||||||
|
# Connect to the database
|
||||||
|
db = Database()
|
||||||
|
cursor = db.create_connection()
|
||||||
|
|
||||||
|
# Returns list of tuples: (chatter_id, message)
|
||||||
|
all_chats = cursor.execute("""SELECT ?, ? FROM chat
|
||||||
|
ORDER BY ?;""", ("chatter_id", "message", "time_sent")).fetchall()
|
||||||
|
|
||||||
|
# Create JSON output of chat_history to pass through NGINX proxy
|
||||||
|
chat_history = {}
|
||||||
|
for chat in all_chats:
|
||||||
|
chat_history[chat[0]] = chat[1]
|
||||||
|
|
||||||
|
# Pass the chat history to the proxy
|
||||||
|
return chat_history
|
||||||
|
|
||||||
|
def get_recent_chat():
|
||||||
|
"""
|
||||||
|
Run periodically to return new chat messages on a stream a user has already loaded in to.
|
||||||
|
|
||||||
|
|
||||||
|
"""
|
||||||
|
return {}
|
||||||
@@ -1,12 +1,13 @@
|
|||||||
DROP TABLE IF EXISTS users;
|
DROP TABLE IF EXISTS users;
|
||||||
CREATE TABLE users
|
CREATE TABLE users
|
||||||
(
|
(
|
||||||
username VARCHAR(50) PRIMARY KEY NOT NULL,
|
username VARCHAR(50) NOT NULL,
|
||||||
password VARCHAR(256) NOT NULL,
|
password VARCHAR(256) NOT NULL,
|
||||||
email VARCHAR(64) NOT NULL,
|
email VARCHAR(64) NOT NULL,
|
||||||
num_followers INTEGER NOT NULL,
|
num_followers INTEGER NOT NULL,
|
||||||
isPartenered BOOLEAN NOT NULL DEFAULT 0,
|
isPartenered BOOLEAN NOT NULL DEFAULT 0,
|
||||||
bio TEXT
|
bio TEXT,
|
||||||
|
PRIMARY KEY (username)
|
||||||
);
|
);
|
||||||
|
|
||||||
SELECT * FROM users;
|
SELECT * FROM users;
|
||||||
@@ -15,22 +16,36 @@ SELECT * FROM users;
|
|||||||
DROP TABLE IF EXISTS streams;
|
DROP TABLE IF EXISTS streams;
|
||||||
CREATE TABLE streams
|
CREATE TABLE streams
|
||||||
(
|
(
|
||||||
stream_id INTEGER PRIMARY KEY AUTOINCREMENT,
|
stream_id INTEGER AUTOINCREMENT,
|
||||||
title TEXT NOT NULL,
|
title TEXT NOT NULL,
|
||||||
start_time DATETIME NOT NULL,
|
start_time DATETIME NOT NULL,
|
||||||
num_viewers INT NOT NULL DEFAULT 0,
|
num_viewers INT NOT NULL DEFAULT 0,
|
||||||
isLive BOOLEAN NOT NULL DEFAULT 0,
|
isLive BOOLEAN NOT NULL DEFAULT 0,
|
||||||
vod_id INT,
|
vod_id INT,
|
||||||
streamer_id VARCHAR NOT NULL,
|
streamer_id VARCHAR NOT NULL,
|
||||||
|
PRIMARY KEY (stream_id),
|
||||||
FOREIGN KEY (streamer_id) REFERENCES users(username) ON DELETE CASCADE
|
FOREIGN KEY (streamer_id) REFERENCES users(username) ON DELETE CASCADE
|
||||||
);
|
);
|
||||||
|
|
||||||
DROP TABLE IF EXISTS follows;
|
DROP TABLE IF EXISTS follows;
|
||||||
CREATE TABLE follows
|
CREATE TABLE follows
|
||||||
(
|
(
|
||||||
user_id INT NOT NULL,
|
username VARCHAR(50) NOT NULL,
|
||||||
following_id INT NOT NULL,
|
following_id VARCHAR(50) NOT NULL,
|
||||||
PRIMARY KEY (user_id, following_id),
|
PRIMARY KEY (username, following_id),
|
||||||
FOREIGN KEY (user_id) REFERENCES users(username) ON DELETE CASCADE,
|
FOREIGN KEY (username) REFERENCES users(username) ON DELETE CASCADE,
|
||||||
FOREIGN KEY (following_id) REFERENCES users(username) ON DELETE CASCADE
|
FOREIGN KEY (following_id) REFERENCES users(username) ON DELETE CASCADE
|
||||||
|
);
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS chat;
|
||||||
|
CREATE TABLE chat
|
||||||
|
(
|
||||||
|
message_id INT AUTOINCREMENT,
|
||||||
|
chatter_id VARCHAR(50) NOT NULL,
|
||||||
|
stream_id INT NOT NULL,
|
||||||
|
message TEXT NOT NULL,
|
||||||
|
time_sent DATETIME NOT NULL,
|
||||||
|
PRIMARY KEY (message_id),
|
||||||
|
FOREIGN KEY (chatter_id) REFERENCES users(username),
|
||||||
|
FOREIGN KEY (stream_id) REFERENCES streams(stream_id) ON DELETE CASCADE
|
||||||
);
|
);
|
||||||
Reference in New Issue
Block a user