Document
Document
import random
app = Flask(__name__)
app.config["SECRET_KEY"] = "hjhjsdahhds"
socketio = SocketIO(app)
rooms = {}
def generate_unique_code(length):
while True:
code = ""
for _ in range(length):
code += random.choice(ascii_uppercase)
break
return code
def home():
session.clear()
if request.method == "POST":
name = request.form.get("name")
code = request.form.get("code")
room = code
if create != False:
room = generate_unique_code(4)
session["room"] = room
session["name"] = name
return redirect(url_for("room"))
return render_template("home.html")
@app.route("/room")
def room():
room = session.get("room")
return redirect(url_for("home"))
@socketio.on("message")
def message(data):
room = session.get("room")
if room not in rooms:
return
content = {
"name": session.get("name"),
"message": data["data"]
send(content, to=room)
rooms[room]["messages"].append(content)
@socketio.on("connect")
def connect(auth):
room = session.get("room")
name = session.get("name")
return
leave_room(room)
return
join_room(room)
rooms[room]["members"] += 1
@socketio.on("disconnect")
def disconnect():
room = session.get("room")
name = session.get("name")
leave_room(room)
if room in rooms:
rooms[room]["members"] -= 1
if rooms[room]["members"] <= 0:
del rooms[room]
if __name__ == "__main__":
socketio.run(app, debug=True)