From 065def33fc54ed65e6a7f2743980229dfd988cd3 Mon Sep 17 00:00:00 2001 From: "max.mehl" Date: Sun, 19 Dec 2021 22:00:41 +0100 Subject: [PATCH] prototype qmail toggling --- autoreply_editor/main.py | 47 ++++++++++++++++++++------- autoreply_editor/templates/index.html | 21 +++++++++++- 2 files changed, 56 insertions(+), 12 deletions(-) diff --git a/autoreply_editor/main.py b/autoreply_editor/main.py index d41cf36..a538e95 100644 --- a/autoreply_editor/main.py +++ b/autoreply_editor/main.py @@ -1,25 +1,50 @@ """Provide basic settings and views""" -from flask import request, render_template, redirect +import re +from pathlib import Path +from flask import request, render_template from flask_basicauth import BasicAuth from autoreply_editor import app basic_auth = BasicAuth(app) + +def qmail_status(user): + """Find out whether the filter is currently activated for the given mail user""" + with open(f"{str(Path.home())}/.qmail-{user}", encoding="utf8") as dotqmail: + if not re.search( + r"^\|maildrop \$HOME/\.filter-autoreply$", dotqmail.read(), re.MULTILINE + ): + return False + else: + return True + + @app.route("/") def index(): - with open(app.config.get("MESSAGE_FILE"), "r") as f: - message = f.read() + with open(app.config.get("MESSAGE_FILE"), "r", encoding="utf-8") as messagefile: + message = messagefile.read() - return render_template("index.html", message=message) + return render_template( + "index.html", + message=message, + qmail_status=qmail_status(app.config.get("MAIL_USER")), + ) -@app.route('/', methods=['POST']) + +@app.route("/", methods=["POST"]) def index_post(): - input_message = request.form['message'] + if request.method == "POST": + if request.form["action"] == "message": + input_message = request.form["message"] + with open(app.config.get("MESSAGE_FILE"), "w", encoding="utf-8") as messagefile: + messagefile.write(str(input_message)) + result = "Success: The autoreply message has been updated!" - if request.method == 'POST': - with open(app.config.get("MESSAGE_FILE"), 'w') as f: - f.write(str(input_message)) - result = "Success: The autoreply message has been updated!" + if request.form["action"] == "qmail": + result = f"Success: the autoreply is now {request.form['status']}." - return render_template("result.html", result=result) + try: + return render_template("result.html", result=result) + except UnboundLocalError: + return render_template("result.html", result="Something went terribly wrong!") diff --git a/autoreply_editor/templates/index.html b/autoreply_editor/templates/index.html index 55f113f..ebc61d7 100644 --- a/autoreply_editor/templates/index.html +++ b/autoreply_editor/templates/index.html @@ -6,11 +6,30 @@

Autoreply Editor

+

Toggle autoreply message

+ +

+ Currently, autoreply: {{ qmail_status }} +

+
+ + {% if qmail_status %} + + + {% else %} + + + {% endif %} +
+ +

Change autoreply message

+

Below you can see the current text of your autoreply message. You can edit and update it directly below:

-
+ +