💡 add comments + all urls https

This commit is contained in:
JMARyA 2022-08-25 16:04:00 +02:00
parent e9b84ce522
commit 8249ac0355
Signed by: jmarya
GPG key ID: 901B2ADDF27C2263
2 changed files with 18 additions and 4 deletions

View file

@ -12,6 +12,7 @@ def filesend(path):
return send_from_directory(dirpath, filename) return send_from_directory(dirpath, filename)
# Profile Picture Asset
@asset_pages.route("/me", methods=["GET"]) @asset_pages.route("/me", methods=["GET"])
def me_picture(): def me_picture():
return filesend("/config/me.avif") return filesend("/config/me.avif")

View file

@ -8,6 +8,7 @@ import gnupg
main_pages = Blueprint("main", __name__) main_pages = Blueprint("main", __name__)
# Bootstrap CSS
BOOTSTRAP = [ BOOTSTRAP = [
Reference( Reference(
"https://cdn.jsdelivr.net/npm/bootstrap@5.2.0-beta1/dist/css/bootstrap.min.css", "https://cdn.jsdelivr.net/npm/bootstrap@5.2.0-beta1/dist/css/bootstrap.min.css",
@ -22,13 +23,14 @@ BOOTSTRAP = [
), ),
] ]
# Encrypt msg with GPG
def encrypt(msg): def encrypt(msg):
pgp = gnupg.GPG() pgp = gnupg.GPG()
pgp.import_keys(open("/config/pub.key").read()) pgp.import_keys(open("/config/pub.key").read())
return str(pgp.encrypt(msg, pgp.list_keys()[0]["fingerprint"])) return str(pgp.encrypt(msg, pgp.list_keys()[0]["fingerprint"]))
# Save msg in `/data/messages`
def save_message(msg, name=""): def save_message(msg, name=""):
os.makedirs("/data/messages", exist_ok=True) os.makedirs("/data/messages", exist_ok=True)
dt = datetime.datetime.now().strftime("%Y-%m-%d.%H-%M") dt = datetime.datetime.now().strftime("%Y-%m-%d.%H-%M")
@ -36,16 +38,19 @@ def save_message(msg, name=""):
f.write(msg) f.write(msg)
# Message Sending Page
@main_pages.route("/message", methods=["GET", "POST"]) @main_pages.route("/message", methods=["GET", "POST"])
def send_message(): def send_message():
if request.method == "POST": if request.method == "POST":
# If POST handle message
msg = request.form["message"] msg = request.form["message"]
name = request.form["msg_name"] name = request.form["msg_name"]
if msg is not None: if msg is not None:
cipher = encrypt(msg) cipher = encrypt(msg)
save_message(cipher, name) save_message(cipher, name)
return redirect(request.url_root) return redirect(request.url_root.replace("http", "https"))
else: else:
# Return Message Form
return buildSite( return buildSite(
[ [
Div( Div(
@ -53,7 +58,7 @@ def send_message():
Heading(1, "Message"), Heading(1, "Message"),
LineBreak(), LineBreak(),
Form( Form(
destination=request.url, destination=request.url.replace("http", "https"),
inner=[ inner=[
Input( Input(
"", "",
@ -92,6 +97,7 @@ def send_message():
).to_code() ).to_code()
# Wrapper for Base HTML
def buildSite(content): def buildSite(content):
return Document( return Document(
head=Head( head=Head(
@ -112,6 +118,7 @@ def buildSite(content):
) )
# Public Key Page
@main_pages.route("/public_key", methods=["GET"]) @main_pages.route("/public_key", methods=["GET"])
def public_key(): def public_key():
try: try:
@ -119,6 +126,7 @@ def public_key():
ua = request.user_agent.string.lower() ua = request.user_agent.string.lower()
if "chrome" in ua or "safari" in ua or "firefox" in ua: if "chrome" in ua or "safari" in ua or "firefox" in ua:
# If request is from common browser return stylized html
return buildSite( return buildSite(
[ [
Div( Div(
@ -126,7 +134,7 @@ def public_key():
[ [
Bold("To Import: "), Bold("To Import: "),
Span( Span(
f'curl -sL "{request.base_url}"|gpg --import', f'curl -sL "{request.base_url.replace("http", "https")}"|gpg --import',
global_attr=GlobalAttributes( global_attr=GlobalAttributes(
style="display: block;font-family: monospace,monospace;margin-top: 10px; font-size: 20px;overflow-wrap: break-word;" style="display: block;font-family: monospace,monospace;margin-top: 10px; font-size: 20px;overflow-wrap: break-word;"
), ),
@ -147,12 +155,15 @@ def public_key():
] ]
).to_code() ).to_code()
# Return raw key
resp = Response(response=ret, status=200, mimetype="application/pgp-keys") resp = Response(response=ret, status=200, mimetype="application/pgp-keys")
return resp return resp
except: except:
# If key does not exist return error
return Response(response="", status=502) return Response(response="", status=502)
# Contact
def build_contact_block(): def build_contact_block():
return Div( return Div(
[ [
@ -174,6 +185,7 @@ def build_contact_block():
) )
# Donations
def build_donation_block(): def build_donation_block():
return Div( return Div(
[ [
@ -197,6 +209,7 @@ def build_donation_block():
) )
# Basic Information
def build_information_block(): def build_information_block():
return Div( return Div(
[ [