From 973f7a087b53218f4a38ac425a24f010f4e42611 Mon Sep 17 00:00:00 2001 From: "max.mehl" Date: Sun, 19 Dec 2021 22:25:09 +0100 Subject: [PATCH] extend prototype for qmail toggling --- autoreply_editor/main.py | 31 +++++++++++++++++++++++++-- autoreply_editor/templates/index.html | 2 +- 2 files changed, 30 insertions(+), 3 deletions(-) diff --git a/autoreply_editor/main.py b/autoreply_editor/main.py index a538e95..6f5461e 100644 --- a/autoreply_editor/main.py +++ b/autoreply_editor/main.py @@ -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: diff --git a/autoreply_editor/templates/index.html b/autoreply_editor/templates/index.html index ebc61d7..2009ad7 100644 --- a/autoreply_editor/templates/index.html +++ b/autoreply_editor/templates/index.html @@ -9,7 +9,7 @@

Toggle autoreply message

- Currently, autoreply: {{ qmail_status }} + The autoreply is {%if qmail_status%}active{%else%}inactive{%endif%}