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 @@
+ Currently, autoreply: {{ qmail_status }} +
+ + +Below you can see the current text of your autoreply message. You can edit and update it directly below:
-