From d597f5d4fc553dd530ca19339929ddcd9972ea14 Mon Sep 17 00:00:00 2001 From: randomuser Date: Wed, 24 May 2023 09:27:35 -0500 Subject: [PATCH] add a simple async message capability --- secmsg/__init__.py | 30 ++++++++++++++++++++++++++++++ secmsg/static/messages.html | 8 ++++++++ secmsg/templates/messages.html | 5 +++++ 3 files changed, 43 insertions(+) create mode 100644 secmsg/static/messages.html create mode 100644 secmsg/templates/messages.html diff --git a/secmsg/__init__.py b/secmsg/__init__.py index f03f290..9724213 100644 --- a/secmsg/__init__.py +++ b/secmsg/__init__.py @@ -5,21 +5,51 @@ please see the terms of the license in the file LICENSE. copyright 2023 randomuser """ import os +import hashlib from flask import Flask from flask import send_from_directory from flask import redirect +from flask import request +from flask import render_template +from flask import escape from flask_sock import Sock import simple_websocket +import time app = Flask(__name__, instance_relative_config=True) sock = Sock(app) clients = [] +messages = {} @app.route('/') def index(): return redirect("/static/app") +@app.route('/messages') +def message_index(): + argument = request.args.get('id') + if not argument: + return redirect("/static/messages.html") + else: + try: + text = messages[argument] + messages.pop(argument, None) + return text + except KeyError: + return redirect("/static/messages.html") + +@app.route('/newmessage', methods = ['POST']) +def make_message(): + if request.method == 'POST': + message = request.form['message'] + hashobj = hashlib.sha256() + hashobj.update(bytes(message + str(time.time_ns()), 'utf-8')) + hashed = hashobj.hexdigest() + messages[hashed] = escape(message) + + return render_template('messages.html', proto="http", host="127.0.0.1:5000", hashed=hashed) + @app.route('/static/app') def app_redirect(): return redirect("/static/app.html") diff --git a/secmsg/static/messages.html b/secmsg/static/messages.html new file mode 100644 index 0000000..8c13027 --- /dev/null +++ b/secmsg/static/messages.html @@ -0,0 +1,8 @@ + + +
+ + +
+ + diff --git a/secmsg/templates/messages.html b/secmsg/templates/messages.html new file mode 100644 index 0000000..5a29595 --- /dev/null +++ b/secmsg/templates/messages.html @@ -0,0 +1,5 @@ + +Message Layout + +

Your generated url is

{{proto}}://{{host}}/messages?id={{hashed}}

+