extend prototype for qmail toggling

This commit is contained in:
2021-12-19 22:25:09 +01:00
parent 065def33fc
commit 973f7a087b
2 changed files with 30 additions and 3 deletions

View File

@@ -1,5 +1,6 @@
"""Provide basic settings and views"""
import fileinput
import re
from pathlib import Path
from flask import request, render_template
@@ -8,10 +9,13 @@ from autoreply_editor import app
basic_auth = BasicAuth(app)
qmail_prefix = f"{str(Path.home())}/.qmail-"
maildrop_line = "|maildrop $HOME/.filter-autoreply"
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:
with open(f"{qmail_prefix}{user}", encoding="utf8") as dotqmail:
# TODO: RE not necessary here
if not re.search(
r"^\|maildrop \$HOME/\.filter-autoreply$", dotqmail.read(), re.MULTILINE
):
@@ -37,11 +41,34 @@ def index_post():
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:
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.form["action"] == "qmail":
# define whether to set a comment
if request.form["status"] == "on":
preis = "#"
preshould = ""
else:
preis = ""
preshould = "#"
with fileinput.FileInput(
f"{qmail_prefix}{app.config.get('MAIL_USER')}",
inplace=True,
backup=".bak",
) as dotqmail:
for line in dotqmail:
print(
line.replace(
f"{preis}{maildrop_line}", f"{preshould}{maildrop_line}"
),
end="",
)
result = f"Success: the autoreply is now {request.form['status']}."
try: