Skip to content

Commit 6f3f3a2

Browse files
author
Naím Rodríguez
authored
QR code generator
added the function to generate QR's to join the room chat
1 parent d848eee commit 6f3f3a2

File tree

4 files changed

+24
-6
lines changed

4 files changed

+24
-6
lines changed

chats/chat.md

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
In this folder chat room files will be saved

qrs/QR.md

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
In this folder QR's will be saved

requirements.txt

+3-1
Original file line numberDiff line numberDiff line change
@@ -1 +1,3 @@
1-
flask==2.2.2
1+
flask==2.2.2
2+
qrcode==7.3.1
3+
pillow==9.2.0

server.py

+19-5
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
1-
from flask import Flask, redirect, request, render_template, url_for
1+
from flask import Flask, redirect, request, render_template, url_for, send_file
22
import secrets
33
import os
44
import time
5+
import qrcode
6+
57

68
app = Flask(__name__)
79
app.config['SECRET_KEY'] = secrets.token_hex(32)
@@ -15,7 +17,7 @@ def home():
1517
@app.route("/create/", methods=['GET'])
1618
def create():
1719
number = secrets.token_urlsafe(128)
18-
new_file_room = open(f"room.{number}.txt", "w")
20+
new_file_room = open(f"{os.getcwd()}/chats/room.{number}.txt", "w")
1921
new_file_room.write("")
2022
new_file_room.close()
2123
return redirect(f"/room/{number}")
@@ -31,8 +33,8 @@ def join():
3133
# Get the messages from the room
3234
@app.get("/room/<string:number>/")
3335
def room_get(number):
34-
if os.path.isfile(f"{os.getcwd()}/room.{number}.txt"):
35-
content_mes = open(f"room.{number}.txt", "r", encoding='utf-8').read()
36+
if os.path.isfile(f"{os.getcwd()}/chats/room.{number}.txt"):
37+
content_mes = open(f"{os.getcwd()}/chats/room.{number}.txt", "r", encoding='utf-8').read()
3638
title = f"{number[:6]}...{number[-6:]}"
3739
msg_list = content_mes.split('\n') if content_mes else None
3840
return render_template("room.html", title=title, msg_list=msg_list, room_key=number)
@@ -42,12 +44,24 @@ def room_get(number):
4244
# Post a message on the room
4345
@app.post("/room/<string:number>/")
4446
def room_post(number):
45-
content_room = open(f"room.{number}.txt", "a", encoding='utf-8')
47+
content_room = open(f"{os.getcwd()}/chats/room.{number}.txt", "a", encoding='utf-8')
4648
if request.form['message']:
4749
time_msg = f"[{time.localtime().tm_hour}:{time.localtime().tm_min}.{time.localtime().tm_sec}]"
4850
content_room.write(f"{time_msg} - {request.form['message']}\n")
4951
return redirect(url_for("room_get", number=number))
5052

53+
@app.get("/room/<string:number>/qr/")
54+
def room_get_qr(number):
55+
# If the qr code of the room exists return it
56+
if os.path.isfile(f"{os.getcwd()}/qrs/{number}.png"):
57+
return send_file(f"{os.getcwd()}/qrs/{number}.png")
58+
# If qr doesnt exists create it and send it
59+
else:
60+
qr_img = qrcode.make(f"localhost/room/{number}/")
61+
qr_img.save(f"{os.getcwd()}/qrs/{number}.png")
62+
return send_file(f"{os.getcwd()}/qrs/{number}.png")
63+
64+
5165
if __name__ == "__main__":
5266
os.chdir(os.getcwd())
5367
app.run(host="0.0.0.0", port=80, debug=True)

0 commit comments

Comments
 (0)