prototype qmail toggling

This commit is contained in:
2021-12-19 22:00:41 +01:00
parent 28064e8144
commit 065def33fc
2 changed files with 56 additions and 12 deletions

View File

@@ -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!")

View File

@@ -6,11 +6,30 @@
<body>
<h1>Autoreply Editor</h1>
<h2>Toggle autoreply message</h2>
<p>
Currently, autoreply: {{ qmail_status }}
</p>
<form method="POST">
<input type="hidden" name="action" value="qmail" />
{% if qmail_status %}
<input type="hidden" name="status" value="off" />
<input type="submit" value="Deactivate">
{% else %}
<input type="hidden" name="status" value="on" />
<input type="submit" value="Activate">
{% endif %}
</form>
<h2>Change autoreply message</h2>
<p>
Below you can see the current text of your autoreply message. You
can edit and update it directly below:
</p>
<form action="" method="POST">
<form method="POST">
<input type="hidden" name="action" value="message" />
<textarea name="message" cols="120" rows="20">{{ message }}</textarea>
<br />
<input type="submit" value="Update">